home *** CD-ROM | disk | FTP | other *** search
/ PC-SIG: Essential Home & Business / PC-SIG - Essential Home and Business Collection.iso / 22 / 4 / 9 / FX.TXT < prev    next >
Text File  |  1990-11-28  |  119KB  |  2,921 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.                               ----FAR--DARTER---->
  9.                                 s o f t w a r e
  10.  
  11.                                     Presents
  12.  
  13.  
  14.                        _____________      ____        ____
  15.                       |             |      ____      ____
  16.                       |    _________|       ____    ____
  17.                       |   |                  ____  ____
  18.                       |   |_______            ________
  19.                       |           |            ______
  20.                       |    _______|             ____
  21.                       |   |                    ______
  22.                       |   |                   ________
  23.                       |   |                  ____  ____
  24.                       |   |                 ____    ____
  25.                       |   |                ____      ____
  26.                       |___|               ____        ____
  27.  
  28.  
  29.                       F  i  l  e     e  X  a  m  i  n  e  r
  30.  
  31.  
  32.  
  33.  
  34.  
  35.                          ******************************
  36.                          *                            *
  37.                          *     User Documentation     *
  38.                          *                            *
  39.                          *        Version 1.1         *
  40.                          *                            *
  41.                          ******************************
  42.  
  43.  
  44.  
  45.  
  46.  
  47.                           Copyright 1990 William Noble
  48.                               All Rights Reserved
  49.  
  50.  
  51.      
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.                                     LIMIT OF LIABILITY
  62.  
  63.  
  64.  
  65.                          FX  is   distributed  as-is.     The   author
  66.                          disclaims  all   warranties,   expressed   or
  67.                          implied.  The author will assume no liability
  68.                          for damages  either from  the direct  use  of
  69.                          this product  or as  a consequence of the use
  70.                          of this product, nor be liable for any damage
  71.                          to data  or  property  which  may  be  caused
  72.                          either directly  or indirectly, intentionally
  73.                          or unintentionally,  from  the  use  of  this
  74.                          product.
  75.  
  76.  
  77.  
  78.  
  79.  
  80.                   ______________________________________________________
  81.  
  82.  
  83.                          FX  was   designed  for  the  legal  and
  84.                          legitimate  examination  and  repair  of
  85.                          personal files.   It was NOT designed to
  86.                          alter  programs   or  files   that   are
  87.                          copyrighted   or    owned    by    other
  88.                          individuals or  companies!  Doing so may
  89.                          very well  be illegal,  and will  at the
  90.                          least  probably  void  any  warranty  or
  91.                          other  legal   rights  extended  to  the
  92.                          purchaser of  the programs or files thus
  93.                          affected.   The author can not, and will
  94.                          not,  assume   any   responsibility   or
  95.                          liability for those who use this program
  96.                          irresponsibly!
  97.  
  98.                   ______________________________________________________
  99.                                              
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.                                         Shareware
  109.  
  110.  
  111.  
  112.                FX is  distributed as  shareware, which  affords  users  the
  113.                opportunity to  evaluate programs BEFORE they are purchased.
  114.                If the  program is  then judged  effective and practical for
  115.                individual needs  and is  used regularly,  one registers the
  116.                program with the author.
  117.  
  118.                If you  use FX  on a regular basis and find it a functional,
  119.                worthwhile program,  we sincerely  hope you will register in
  120.                keeping with  the philosophy  and practice of user-supported
  121.                software.  The basic single-user registration fee we request
  122.                is $15.   (Please  see the end of the documentation for full
  123.                registration details).   FX, like most shareware, required a
  124.                substantial amount  of time and skill to design and program,
  125.                and is,  we feel,  on  a  par  with  commercially  available
  126.                packages in all respects.
  127.  
  128.                Regardless of  whether you  register your  copy  of  FX,  we
  129.                encourage you  to copy  it and  pass it along to friends and
  130.                acquaintances  for  their  own  evaluation  and  trial  use!
  131.                (Needless to  say, all  copies made are understood to be for
  132.                the non-commercial, private trial use of others).
  133.  
  134.                Consistent with  the custom  of user-supported software, you
  135.                may receive  a copy  of FX  by sending us a blank, formatted
  136.                disk together with an addressed, POSTAGE PAID return mailer.
  137.                The FX program and documentation on disk will be mailed back
  138.                on your diskette.
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.                                 Trademark Acknowledgments
  150.  
  151.  
  152.  
  153.                          dBASE is  a registered  trademark of  Ashton-
  154.                          Tate Corporation.
  155.  
  156.                          Epson MX  is a  trademark of  Epson  America,
  157.                          Inc.
  158.  
  159.                          IBM and  IBM PC  are registered trademarks of
  160.                          International Business Machines Corporation.
  161.  
  162.                          Microsoft, Microsoft  C, Microsoft C Compiler
  163.                          and  MS-DOS   are  registered  trademarks  of
  164.                          Microsoft Corporation.
  165.  
  166.                          Turbo  Assembler   (TASM)  is   a  registered
  167.                          trademark of Borland International, Inc.
  168.                          
  169.  
  170.  
  171.  
  172.                                       Contents
  173.  
  174.  
  175.  
  176.  
  177.  
  178.                Introduction                                       1
  179.                FX Quick Start                                     2
  180.                Hardware Requirements                              3
  181.                Mouse Support                                      3
  182.                Installation                                       4
  183.                Invoking FX                                        4
  184.                Using Menus and Input Areas                        8
  185.                Using the Numeric Entry Box                        8
  186.                Basic Concepts                                    10
  187.                Using FX- Overview                                11
  188.                         Moving through the File                  11
  189.                         Selecting Display Modes                  12
  190.                         Synopsis of FX Commands                  13
  191.                The Major FX Functions                            15
  192.                         Selecting a File To Examine              15
  193.                         Locating Byte Patterns                   16
  194.                         Counting Byte Patterns                   18
  195.                         Modifying a File Byte                    18
  196.                         Jumping Directly to Any Byte             18
  197.                         DOS Shell                                19
  198.                Major Display Formatting Options                  20
  199.                         Changing the Display Mode                20
  200.                         Selecting the Numeric Display            22
  201.                         Toggling Hexadecimal Status Line Notation24
  202.                         Optimizing the Display for ".DBF" Files  24
  203.                Understanding The FX Display                      26
  204.                         StartByte                                27
  205.                         Recsize                                  27
  206.                         Tab Amount                               28
  207.                         File Byte                                28
  208.                         Record                                   28
  209.                         Recbyte                                  29
  210.                         Modified                                 29
  211.                Using FX with dBASE database files                30
  212.                         Examining the field definitions          31
  213.                         Examining the data                       32
  214.                Summary of FX Messages                            33
  215.                Error Handling                                    36
  216.                FX Command Summary                                37
  217.                Notes                                             38
  218.                FX Registration Information                        A
  219.  
  220.  
  221.           FX User Documentation                                 Version 1.1
  222.           _________________________________________________________________
  223.  
  224.  
  225.  
  226.  
  227.           Introduction
  228.  
  229.  
  230.           FX (File  eXaminer) is  a general-purpose  file viewer and "byte-
  231.           zap" utility.   It can handle any file possible under MS-DOS, and
  232.           of unlimited size; it is neither constrained by nor optimized for
  233.           any particular  file format,  whether that be ASCII text, binary,
  234.           etc.   This program  was designed  to be  as fast,  flexible  and
  235.           reliable as  possible, working  as a sort of "byte-oriented" word
  236.           processor.   Note that FX enables viewing and modification of the
  237.           ENTIRE contents  of  a  file,  INCLUDING  any  end-of-file  marks
  238.           (Control-Z, ASCII value 26 decimal).
  239.  
  240.           Please note  that FX will not insert bytes or remove bytes-- only
  241.           modify existing  ones.   In addition,  FX  does  not  create  any
  242.           "temporary" or  "intermediate" files--  one is  working  DIRECTLY
  243.           against the  selected file!   If  it is  planned to modify bytes,
  244.           (especially in  an executable file), and there is the least doubt
  245.           about the  impact of  the changes,  WORK WITH A COPY OF THE FILE,
  246.           AND NOT THE ORIGINAL!
  247.  
  248.           Be assured  that FX  is completely  safe to  use on ANY file-- it
  249.           will  not  modify  any  aspect  of  a  file  unless  specifically
  250.           requested to  do so,  and doing  so requires  an overt, conscious
  251.           decision  by   the  user.     Unintentional  changes  are  almost
  252.           impossible.   If there  is the  least doubt, however, it is again
  253.           strongly recommended the file be backed up first.
  254.  
  255.  
  256.           Any of the following tasks may be easily accomplished with FX:
  257.  
  258.                -    Scroll through and examine ANY portion of ANY file
  259.                     as  if   it  were   a  word  processing  document,
  260.                     displaying the  data in  any mix of ASCII, decimal
  261.                     or hexadecimal notation.
  262.  
  263.                -    Locate or Count byte patterns.
  264.  
  265.                -    Format the  display to  expose the underlying file
  266.                     structure.
  267.  
  268.                -    Modify any  byte in  any file,  regardless of  its
  269.                     location.
  270.  
  271.                -    Read  PAST   any  end-of-file  marks,  (Control-Z,
  272.                     decimal ASCII  26), right to the end of the file's
  273.                     physical extent as recorded by DOS.
  274.  
  275.                -    Continuously watch  the value of the byte, integer
  276.                     and long  integer at any file position in terms of
  277.                     decimal, hexadecimal or binary notation.
  278.  
  279.  
  280.  
  281.           _________________________________________________________________
  282.           (C) 1990, William Noble                                    Page 1
  283.  
  284.  
  285.           FX User Documentation                                 Version 1.1
  286.           _________________________________________________________________
  287.  
  288.  
  289.           Typical uses of FX include:
  290.  
  291.                -    Repairing damaged files.
  292.  
  293.                -    Removing intermediate  end-of-file marks  in  text
  294.                     files that  prevent access to the full contents of
  295.                     the file.
  296.  
  297.                -    Scanning executable  code for  messages indicative
  298.                     of  a   program  with   "ulterior  motives",  e.g.
  299.                     "Viruses" and the like.
  300.  
  301.                -    Customizing  executable  programs.    Many  ".COM"
  302.                     programs are  accompanied by a discussion of which
  303.                     bytes to  modify to customize their display colors
  304.                     and other configuration options.  (Typically, this
  305.                     is done  using the  "DEBUG" program, but FX is far
  306.                     easier to use and better suited to such a task).
  307.  
  308.                -    Programmers can  use FX to inspect and debug files
  309.                     created by their own programs.
  310.  
  311.                -    Deciphering foreign file formats.
  312.  
  313.  
  314.  
  315.           FX Quick Start
  316.  
  317.  
  318.           FX is  started simply  by issuing  the command "FX".  FX can also
  319.           accept a  number  of  wholly  optional  command-line  parameters.
  320.           Please refer to the section "Invoking FX" for full details.
  321.  
  322.           Once FX  is running,  ALT-H will  pop up  the help  screen at any
  323.           point in  the program.  Also, hitting the forward slash key ("/")
  324.           will invoke the FX command menu, which may be used to familiarize
  325.           oneself with, and optionally invoke, FX commands.
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.           _________________________________________________________________
  346.           (C) 1990, William Noble                                    Page 2
  347.  
  348.  
  349.           FX User Documentation                                 Version 1.1
  350.           _________________________________________________________________
  351.  
  352.  
  353.           Hardware Requirements
  354.  
  355.  
  356.           FX will  run on  any IBM PC or true compatible running DOS 3.0 or
  357.           higher, and  should certainly  run without  incident  on  a  256K
  358.           system.  (FX will require about 200K available memory to run).
  359.  
  360.           FX automatically  detects and  adapts to  a monochrome  or  color
  361.           system, and  selects 25  by 80  text mode  if the  system is  not
  362.           already in  this mode.   (FX  restores the  video mode and cursor
  363.           size upon exit).
  364.  
  365.           Since the  program writes  directly to  video memory for the best
  366.           possible performance, it also accounts for CGA monitors and takes
  367.           the proper measures to avoid the "snow" effect.
  368.  
  369.           Note to  Network Users:  This program was designed to function in
  370.           network, as  well as  single-user, environments.   FX  opens  all
  371.           files in  accord with  the SHARE  program.   This has  no  impact
  372.           whatsoever on  single-user systems,  or on  systems  not  running
  373.           SHARE.   However, if  SHARE is  installed, then note that FX will
  374.           open all  files as "Deny Write"; that is, other programs can read
  375.           from a  file in use by FX, but NOT write to it.  A file is opened
  376.           by FX  when it is selected with the FILE command, and closed only
  377.           when another file is chosen or the program is exited.
  378.  
  379.  
  380.  
  381.           Mouse Support
  382.  
  383.  
  384.           FX will  automatically detect  and support a Microsoft-compatible
  385.           mouse, if  installed.   FX neither  uses nor  displays  a  "mouse
  386.           cursor", but  instead translates  the relative  movement  of  the
  387.           mouse into  an equivalent  press of  the up, down, left and right
  388.           arrow keys.   Moving  the mouse  up, for instance, is the same as
  389.           repeatedly pressing the up-arrow key.
  390.  
  391.           Clicking BOTH buttons simultaneously and releasing them is always
  392.           equivalent to pressing ESCAPE.
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.           _________________________________________________________________
  410.           (C) 1990, William Noble                                    Page 3
  411.  
  412.  
  413.           FX User Documentation                                 Version 1.1
  414.           _________________________________________________________________
  415.  
  416.  
  417.           At menus,  clicking either  button by  itself and releasing it is
  418.           the same as pressing ENTER on the keyboard.
  419.  
  420.           When in the file window, the buttons are put to some use:
  421.  
  422.                -    Clicking  and   releasing  the   LEFT  button   is
  423.                     equivalent to PgUp (Previous screenful)
  424.                -    Clicking  and   releasing  the   RIGHT  button  is
  425.                     equivalent to PgDn (Next screenful)
  426.  
  427.           The primary  reason for  supporting the  mouse is  not for making
  428.           menu selections,  (although it can be used for that), but instead
  429.           for moving the cursor about in the File Window.
  430.  
  431.  
  432.  
  433.           Installation
  434.  
  435.  
  436.           FX does  not require a formal installation as such- the only file
  437.           required to run FX is, simply enough,  "FX.exe".  To "install" FX
  438.           is to  COPY the  file "FX.exe"  to any desired location.  On hard
  439.           disk systems,  it would  certainly be  recommended that this be a
  440.           directory that  is on  the "search  path", (any directory that is
  441.           named in  the PATH  environment variable), so the system can find
  442.           FX regardless of the current working directory.
  443.  
  444.  
  445.  
  446.           Invoking FX
  447.  
  448.  
  449.           New in  version 1.1  is full support for command line parameters;
  450.           nearly every  aspect of  FX can now be configured in this way.  A
  451.           listing of  these options  is available  at any  time  by  simply
  452.           invoking FX with the "/?" option:
  453.  
  454.                FX /?
  455.  
  456.           FX will  list the  options to  the standard  output (usually  the
  457.           screen unless redirection (>) is used), and stop.
  458.  
  459.           The "full dress" form of FX version 1.1 is therefore:
  460.  
  461.                FX  filename  /A  /H  /J  /M  /N  /Q  /R  /S  /T  /?
  462.  
  463.           These options  may be typed in any order, in upper or lower case,
  464.           and must  be separated by spaces.  Each one is optional, and they
  465.           can be  mixed and  matched to suit the need at hand, or specified
  466.           in  batch   files  to   invoke   FX   with   special   often-used
  467.           configurations.
  468.  
  469.  
  470.  
  471.  
  472.  
  473.           _________________________________________________________________
  474.           (C) 1990, William Noble                                    Page 4
  475.  
  476.  
  477.           FX User Documentation                                 Version 1.1
  478.           _________________________________________________________________
  479.  
  480.  
  481.  
  482.                <filename>     The  name  of  the  file  that  FX  will
  483.                               automatically load  upon starting.  This
  484.                               may  be  any  legal  DOS  filename,  and
  485.                               should include  a drive  and/or path  if
  486.                               the file  is not  in the current working
  487.                               directory.  If no filename is present on
  488.                               the command  line, or  FX cannot  locate
  489.                               the  file   specified,  then   the  file
  490.                               selection box  will automatically pop up
  491.                               as usual.
  492.  
  493.                /A             Start in Pure Alphanumeric display mode.
  494.  
  495.                /Annn          Specify numeric ASCII value <nnn> of the
  496.                               character to  use when  in Alpha-Numeric
  497.                               display mode.   By  default, FX  uses  a
  498.                               small dot, ASCII 250.  Any character may
  499.                               be used from the IBM character set, from
  500.                               0-254.  For example, "/A95" or "/A240".
  501.  
  502.                /H             Cause  FX   to  start  with  hexadecimal
  503.                               status line notation enabled.
  504.  
  505.                /Jnnn  ***     Jump automatically  to byte  <nnn>.   (A
  506.                               file must  be supplied  on  the  command
  507.                               line  for   this  option   to  have  any
  508.                               effect).  The value must be in the range
  509.                               0 -  (file size  -1).   Note that if the
  510.                               "/S" switch  is used to set the starting
  511.                               display byte  ("StartByte"),  then  this
  512.                               value becomes  the lower  bound for  the
  513.                               Jump value.   If  the value  is  out  of
  514.                               range, FX  will position  the cursor  at
  515.                               byte 0.
  516.  
  517.                /Mn            Default  starting   file  display  mode,
  518.                               where <n> is a number 1-7.
  519.  
  520.                /Nchar         Starting numeric  display mode.   One of
  521.                               four characters  (upper or  lower  case)
  522.                               must immediately follow the "/N": (N)one
  523.                               (B)inary (D)ecimal or (H)exadecimal.
  524.  
  525.                /Q             Skip the  signon  screen  (Quiet).    By
  526.                               default,  FX  will  display  an  initial
  527.                               title  screen   containing  a  copyright
  528.                               notice and  shareware information.  This
  529.                               screen can  be skipped  by adding a "/Q"
  530.                               to the command line.
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.           _________________________________________________________________
  538.           (C) 1990, William Noble                                    Page 5
  539.  
  540.  
  541.           FX User Documentation                                 Version 1.1
  542.           _________________________________________________________________
  543.  
  544.  
  545.                /Rnnn          Set  default  starting  record  size  to
  546.                               <nnn> bytes.   This value must be in the
  547.                               range 1-3610  decimal in this version of
  548.                               FX.
  549.  
  550.                /Snnn  ***     Set starting byte to <nnn>.  This switch
  551.                               sets the "StartByte" value, but like the
  552.                               "/J" switch,  a file must be supplied on
  553.                               the command line for this option to have
  554.                               any effect.  It must be in the range 0 -
  555.                               (file size in bytes - 1).
  556.  
  557.                /Tnnn          Set the tab amount, 1-65000 decimal.
  558.  
  559.                /?             Display list of command line options
  560.  
  561.  
  562.           The starred  (***) items  /J and  /S are  ONLY meaningful  when a
  563.           filename is present.
  564.  
  565.           Notes:
  566.  
  567.                -    Either a  foreword slash (/) or minus sign (-) may
  568.                     be used as the switch character.
  569.  
  570.                -    Numeric arguments  must immediately  follow the 2-
  571.                     character switch, and are assumed to be in decimal
  572.                     (base 10)  notation.   If it is preferred to enter
  573.                     any value  in hexadecimal notation, an "H" must be
  574.                     appended to  the number, forcing FX to evaluate it
  575.                     as a  hexadecimal quantity.   For example, "/TffH"
  576.                     or "/JFEh".
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.           _________________________________________________________________
  602.           (C) 1990, William Noble                                    Page 6
  603.  
  604.  
  605.           FX User Documentation                                 Version 1.1
  606.           _________________________________________________________________
  607.  
  608.  
  609.           Some examples of invoking FX with command line options are:
  610.  
  611.                FX /q
  612.  
  613.                     Run FX, skip initial screen.
  614.  
  615.                FX A:x.dat /q /NB
  616.  
  617.                     Run FX,  skip initial screen, and examine the file
  618.                     "A:x.dat".     Binary  numeric   display  mode  is
  619.                     requested as well (/NB).
  620.  
  621.                FX c:myfile /T25 /A /A0 /M7 /S150 /J300 /TffH
  622.  
  623.                     This command  tells FX to start automatically with
  624.                     the  file   "C:MYFILE"  in   the  display  window,
  625.                     specifies  that   alphanumeric  display   mode  be
  626.                     toggled on  (/A), sets  the  alphanumeric  display
  627.                     character to  ASCII 0  (/A0), starts  FX  in  file
  628.                     display mode  number 7  (/M7), sets  the  starting
  629.                     file byte   (StartByte) to 150 (/S150), places the
  630.                     cursor initially at byte 300 (/J300), and sets the
  631.                     tab amount to FF hexadecimal (/TffH).
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.           _________________________________________________________________
  666.           (C) 1990, William Noble                                    Page 7
  667.  
  668.  
  669.           FX User Documentation                                 Version 1.1
  670.           _________________________________________________________________
  671.  
  672.  
  673.           Using Menus and Input Areas
  674.  
  675.  
  676.           To use  any menu in FX, either press the first letter of the menu
  677.           item, or  highlight  the  desired  item  using  the  Arrow  keys,
  678.           Spacebar or Backspace keys and press ENTER.
  679.  
  680.           When entering  values in  input areas, the following editing keys
  681.           may be used:
  682.  
  683.                -    LEFT/RIGHT ARROW  KEYS may be used to position the
  684.                     cursor anywhere in an input area.
  685.  
  686.                -    HOME/END will move the cursor to the first or last
  687.                     position in the area, respectively.
  688.  
  689.                -    INSERT:   Toggles between insert mode and overtype
  690.                     mode.   FX starts  in overtype mode, meaning typed
  691.                     characters will  replace existing ones.  In INSERT
  692.                     mode, a  block  cursor  is  displayed,  and  typed
  693.                     characters   are   inserted,   shifting   existing
  694.                     characters to the right.
  695.  
  696.                -    DELETE:   Deletes  the  character  at  the  cursor
  697.                     position, and  shifts all  characters to the right
  698.                     of the cursor left one position.
  699.  
  700.                -    BACKSPACE:   Deletes the  character to the left of
  701.                     the cursor,  shifting the  remainder of  the  area
  702.                     left one position.
  703.  
  704.                -    ESCAPE:  Cancel current entry and back up.
  705.  
  706.  
  707.  
  708.           Using the Numeric Entry Box
  709.  
  710.  
  711.           A special  entry box  appears when one of the 4 options Startbyte
  712.           ("S"), Recsize  ("R"), Tab Amount ("T") or Jump ("J") is invoked.
  713.           These are the only FX commands that require a numeric value to be
  714.           entered by  the user.   Two  entry areas  are provided:  one  for
  715.           decimal notation,  the  other  for  hexadecimal  notation.    The
  716.           desired value  can be  entered in  EITHER box, depending on one's
  717.           inclination.   One can  switch between  the 2 formats by pressing
  718.           TAB, Shift-TAB or using the Up/Down arrow keys.   To the right of
  719.           each input  area is  shown the  range  of  valid  values  between
  720.           parenthesis.
  721.  
  722.           Type in  the  new  value  (in  decimal  or  hexadecimal  notation
  723.           depending on  the selected entry area) and press ENTER to confirm
  724.           the new  value, or  ESCAPE to  leave the  initial  default  value
  725.           unchanged.
  726.  
  727.  
  728.  
  729.           _________________________________________________________________
  730.           (C) 1990, William Noble                                    Page 8
  731.  
  732.  
  733.           FX User Documentation                                 Version 1.1
  734.           _________________________________________________________________
  735.  
  736.  
  737.           Since it  is often  necessary to  do some math to calculate these
  738.           values, (and often in hexadecimal, no less!), a simple calculator
  739.           capability has  been provided.  If the number entered is PRECEDED
  740.           by a  plus ("+"),  minus ("-"),  multiply ("*")  or divide  ("/")
  741.           character, then  that operation is performed as if one were using
  742.           a 4-function calculator.  That is, FX will use the value that was
  743.           LAST in  the box,  and perform  the calculation  requested by the
  744.           symbol "+",  "-", "*"  or "/",  in the same way that a calculator
  745.           would:
  746.  
  747.                New value = <Last Value> (+-*/) <Value just entered>
  748.  
  749.           For example,  assume one wishes to modify the default record size
  750.           by pressing  "R".   The entry  box will  pop up,  and the default
  751.           values will look something like this:
  752.  
  753.                [    72]  (Dec 1-3610)
  754.                [    48]  (Hex 1-E1A)
  755.  
  756.           If one  wanted to increase the default of 72 by 9, one would just
  757.           type a  plus sign  ("+") followed by the number we want to add to
  758.           72, 9 in this case:
  759.  
  760.                [+9    ]  (Dec 1-3610)
  761.                [    48]  (Hex 1-E1A)
  762.  
  763.           Then press ENTER.  Since FX sees the plus sign, it will calculate
  764.           this addition  and place  the answer  back into  the decimal  and
  765.           hexadecimal areas.  The display will now look like this:
  766.  
  767.                [    81]  (Dec 1-3610)
  768.                [    51]  (Hex 1-E1A)
  769.  
  770.           Any amount  of calculating may be done in this fashion.  Pressing
  771.           ENTER will accept the number displayed as the new value.
  772.  
  773.           In summary:
  774.  
  775.                [TAB] or
  776.                Up/Down Arrow  Toggle between  decimal and  hexadecimal
  777.                               entry format.
  778.  
  779.                ENTER          Accept value  currently displayed.    If
  780.                               one of  the 4  operators (+-*/) precedes
  781.                               the  number,  then  the  calculation  is
  782.                               performed and  the  answer  placed  back
  783.                               into the input areas in both decimal and
  784.                               hexadecimal notation.  Press ENTER again
  785.                               to  accept   this  value,   or  edit  it
  786.                               further.
  787.  
  788.                ESCAPE         Leave   the    initial   default   value
  789.                               unchanged and return to the file window.
  790.  
  791.  
  792.  
  793.           _________________________________________________________________
  794.           (C) 1990, William Noble                                    Page 9
  795.  
  796.  
  797.           FX User Documentation                                 Version 1.1
  798.           _________________________________________________________________
  799.  
  800.  
  801.           Basic Concepts
  802.  
  803.  
  804.           A file  is nothing  more than  a stream  of continuous bytes.  FX
  805.           displays these bytes exactly as they occur in the source file, in
  806.           the same order they occur.  The power of FX, however, lies in its
  807.           ability to  format and  display this information in a meaningful,
  808.           flexible manner, and do it very fast.  Files are displayed in the
  809.           FX "File  Window", which  is always  visible and consumes most of
  810.           the screen display.
  811.  
  812.           FX formats  files by  breaking them  up into  "RECORDS" of  fixed
  813.           length, displaying  one record  per display  line.   Therefore, a
  814.           "Record" in  the context  of FX  is "The  number  of  file  bytes
  815.           formatted per  line in  the FX File Window".  (In certain display
  816.           modes, each  record may  take up as many as 3 rows on the screen;
  817.           therefore, this  "line" may  actually  be  composed  of  2  or  3
  818.           physical rows  in the  File Window).   The  record  size  can  be
  819.           modified by the user to be anything from 1 byte up to about 3,600
  820.           bytes.   Please keep  in mind  that the  physical file is still a
  821.           continuous stream  of bytes, and that FX is only VIEWING the file
  822.           as a series of "records" to unencumber its display.
  823.  
  824.           FX starts  up with a default record size of 72 bytes.  This is by
  825.           no means  a magic number-- it happens to be the number of columns
  826.           in the  display window.   In  some cases,  such as  fixed record-
  827.           length database files, it is meaningful to view the file in terms
  828.           of a  very specific  record size, in which case FX can be made to
  829.           display one  database record  per line.   In other cases, such as
  830.           executable files  like "FX.exe", there is no underlying structure
  831.           to the file, and the idea of a record size isn't relevant.
  832.  
  833.           While running  FX, the  record size may be repeatedly changed; FX
  834.           will automatically  reformat the file display in the File Window.
  835.           (This is,  by the way, a good technique for uncovering underlying
  836.           patterns in files).
  837.  
  838.           FX also has the unique ability to instantly change its display of
  839.           file bytes:  ASCII, DECIMAL or HEXADECIMAL, or any combination of
  840.           those three,  which amounts  to 7 possible display formats.  This
  841.           is covered in detail later in the documentation.
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.           _________________________________________________________________
  858.           (C) 1990, William Noble                                   Page 10
  859.  
  860.  
  861.           FX User Documentation                                 Version 1.1
  862.           _________________________________________________________________
  863.  
  864.  
  865.           Using FX- Overview
  866.  
  867.  
  868.           FX uses  just  one  main  screen,  on  which  is  maintained  all
  869.           information about the file being examined, and which is dominated
  870.           by the "File Window".  This window is the "command center" of FX;
  871.           it is  from here  that one  examines files  and  invokes  all  FX
  872.           commands.
  873.  
  874.  
  875.           Moving through the File
  876.  
  877.                The keys used to move around in the file window are:
  878.  
  879.                Left Arrow     Move left to the previous byte
  880.                Right Arrow    Move right to the next byte
  881.                Up Arrow       Move up to the previous record
  882.                Down Arrow     Move down to the next record
  883.                Enter          Move to first byte of next record
  884.                Shift+Enter    Move to first byte of previous record
  885.                Alt <-         Jump to the first byte in the record
  886.                Alt ->         Jump to the last  byte in the record
  887.                PgUp           Previous screenful
  888.                PgDn           Next screenful
  889.                Home           Jump to  first byte  in the  file window
  890.                               (left edge of screen)
  891.                End            Jump to  last byte  in the  file  window
  892.                               (right edge of screen)
  893.                Ctrl-PgUp      Jump to the first record in the file
  894.                Ctrl-PgDn      Jump to the last record in the file
  895.                Ctrl-Home      Jump to first file byte (StartByte)
  896.                Ctrl-End       Jump to last byte in the file
  897.                F9             Pan left by 1/2 window
  898.                F10            Pan right by 1/2 window
  899.                Tab            Move forward by tab amount
  900.                Shift+Tab      Move backward by tab amount
  901.  
  902.                (A beep  will sound  if an  attempt is made to move past the
  903.                file boundaries).
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.           _________________________________________________________________
  922.           (C) 1990, William Noble                                   Page 11
  923.  
  924.  
  925.           FX User Documentation                                 Version 1.1
  926.           _________________________________________________________________
  927.  
  928.  
  929.           Selecting Display Modes
  930.  
  931.                The function  keys F1  through F8,  shift F1 through F8, and
  932.                the "H"  key, are  used to modify aspects of the FX display.
  933.                Function keys  F1 through F7 each correspond to one of the 7
  934.                file display modes offered by FX.  Function key 8 is used to
  935.                select the so-called "Numeric Display", which gives detailed
  936.                information on  numeric values  that exist  at  the  current
  937.                position in  the file.  The "H" key is used to toggle on/off
  938.                hexadecimal notation for the 2 status lines at the bottom of
  939.                the screen.  These options are covered in detail later on.
  940.  
  941.                F1 - F7        Select a Display Mode 1 through 7.
  942.  
  943.                SHIFT + F1-F7  Same as  above, but  also  automatically
  944.                               adjusts the  number of  bytes per record
  945.                               for the given mode.
  946.  
  947.                F8             Cycles through  the  4  Numeric  Display
  948.                               options:  Decimal,  Hexadecimal,  Binary
  949.                               and None.
  950.  
  951.                H              Causes  FX  to  toggle  its  hexadecimal
  952.                               status line  display on  and off.    (By
  953.                               default,  FX  displays  the  file  size,
  954.                               position in the file, etc., in decimal).
  955.                               Toggling this option ON will ALSO affect
  956.                               display  mode   number  1,  causing  the
  957.                               record offsets  displayed to the left of
  958.                               the File  Window to  ALSO be  toggled to
  959.                               hexadecimal notation.
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.           _________________________________________________________________
  986.           (C) 1990, William Noble                                   Page 12
  987.  
  988.  
  989.           FX User Documentation                                 Version 1.1
  990.           _________________________________________________________________
  991.  
  992.  
  993.  
  994.           Synopsis of FX Commands
  995.  
  996.                An alphabetic summary of the FX commands follows.  To invoke
  997.                a command,  type either  the  upper-  or  lower-case  letter
  998.                indicated between  quotes, or  select the  command from  the
  999.                Options menu:
  1000.  
  1001.                "A"lpha Mode   Toggle PURE  ALPHA MODE.  FX starts with
  1002.                               this mode  OFF.   When toggled  ON,  all
  1003.                               non-alphanumeric     characters      are
  1004.                               displayed as a small dot.
  1005.                "C"ount        Count occurrences  of byte  patterns  in
  1006.                               the file.
  1007.                "D"atabase     Optimize  the   FX  display  to  isolate
  1008.                               sections of dBASE database files.
  1009.                "F"ile         Select file  to examine.   A list of all
  1010.                               files in  the current  directory will be
  1011.                               "popped up"-  just highlight the desired
  1012.                               file and press ENTER.
  1013.                "H"ex          Toggle  on/off  hexadecimal  display  of
  1014.                               values  on  the  status  lines  and  the
  1015.                               record offsets when in display mode 1.
  1016.                "J"ump         Jump directly to any byte in the file.
  1017.                "L"ocate       Locate byte or text patterns
  1018.                "N"ext         Jump to next occurrence
  1019.                "R"ecSize      Specify the  record size, in bytes; that
  1020.                               is, the  number of  bytes that  FX  will
  1021.                               place on each display line.
  1022.                "S"tartByte    The  byte  in  the  file  to  begin  the
  1023.                               display with.   FX will ignore all bytes
  1024.                               before the  StartByte, thus establishing
  1025.                               a "new"  beginning of  file.    This  is
  1026.                               purely for ease of VIEWING the file, and
  1027.                               has NO effect on the actual file!
  1028.                ALT-S          Sets the  StartByte at  the current file
  1029.                               position.
  1030.                "T"abAmount    Specify the number of bytes that will be
  1031.                               skipped ahead  or backward  when TAB  or
  1032.                               SHIFT-TAB are pressed.
  1033.                e"X"it or      Quit FX
  1034.                ESCAPE
  1035.  
  1036.                CONTROL+ENTER  Modify current byte.
  1037.                Alt-H          Call up the Help screen.
  1038.                Alt-D          DOS Shell
  1039.                /              Invoke the FX Options Menu.
  1040.  
  1041.  
  1042.                Pressing either  the ESCAPE  key or the letter "X" will quit
  1043.                FX.   If a file has been selected, then a prompt will pop up
  1044.                to confirm  that the  user wishes  to continue  and exit the
  1045.                program.
  1046.  
  1047.  
  1048.  
  1049.           _________________________________________________________________
  1050.           (C) 1990, William Noble                                   Page 13
  1051.  
  1052.  
  1053.           FX User Documentation                                 Version 1.1
  1054.           _________________________________________________________________
  1055.  
  1056.  
  1057.                The Options  Menu.  To assist in understanding and using the
  1058.                various FX  commands, the FX Options Menu is provided.  This
  1059.                menu is  invoked by  typing the  forward slash  (/).    This
  1060.                feature has  been added  as a convenience, enabling not only
  1061.                the selection  of an  FX option,  but also  providing  basic
  1062.                information on  each one.   As the highlight bar is moved up
  1063.                and down  (via the  Arrow Keys,  Spacebar or  Backspace),  a
  1064.                description of  each item  is continuously  displayed to the
  1065.                right.   Options are invoked from this menu the same as from
  1066.                the File  Window:  by  pressing  the  upper-  or  lower-case
  1067.                letter, or  the desired  function key.   Also, the currently
  1068.                highlighted option  can be  invoked by  just pressing ENTER.
  1069.                To exit  this menu  and invoke no option, just press ESCAPE,
  1070.                as usual.
  1071.  
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.           _________________________________________________________________
  1114.           (C) 1990, William Noble                                   Page 14
  1115.  
  1116.  
  1117.           FX User Documentation                                 Version 1.1
  1118.           _________________________________________________________________
  1119.  
  1120.  
  1121.           The Major FX Functions
  1122.  
  1123.  
  1124.           Selecting a File To Examine  ("F")
  1125.  
  1126.                All FX  sessions begin  by selecting a file from the FX file
  1127.                selection box,  unless a  file was  supplied on  the command
  1128.                line when FX was started.
  1129.  
  1130.                FX begins  in the  current working  directory on the current
  1131.                drive.   The file  box will contain every file (*.*) in this
  1132.                directory, as well as a parent directory, if applicable, and
  1133.                any subdirectories.   This  box provides  the full  means to
  1134.                navigate throughout  the entire directory structure, as well
  1135.                as, of  course, selecting  files to  examine.   If a file is
  1136.                chosen from  another directory,  then that directory becomes
  1137.                the new default FX path for subsequent file selections.
  1138.  
  1139.                Moving the  Highlight:  Press  Up/Down  arrow  to  move  the
  1140.                highlight one  file at  a time,  or  PgUp/PgDn  to  move  by
  1141.                screenfuls.   Press HOME  to jump to the first file, and END
  1142.                to jump to the last.
  1143.  
  1144.                SPEED Selection:  By pressing the first letter of a filename
  1145.                (upper or  lower case), FX will jump to the next file in the
  1146.                list that  begins with that letter.  Also, one can press the
  1147.                open parenthesis  "(" to  jump to  directory entries,  which
  1148.                always begin with this character.
  1149.  
  1150.                Sorting the  List: The  list  of  files  can  be  sorted  by
  1151.                extension (ALT-X),  by name  (ALT-N) or  by size  (ALT-S) to
  1152.                make finding a file easier.  (This sort order will remain in
  1153.                effect for subsequent file selections).
  1154.  
  1155.                To select  a file  to examine,  simply highlight the desired
  1156.                file  and  press  ENTER.    Press  ESCAPE  to  exit  without
  1157.                selecting a file.
  1158.  
  1159.                The FX  file selection  box  also  allows  one  to  navigate
  1160.                throughout the  current drive  by moving  up  and  down  the
  1161.                directory tree.  The Parent Directory and Subdirectories are
  1162.                enclosed in  parentheses ()  to distinguish  them  from  the
  1163.                other files  in the  list.  If you are currently in the root
  1164.                directory, then  of  course  no  Parent  directory  will  be
  1165.                listed.
  1166.  
  1167.                To select  the PARENT  directory: Highlight  the file called
  1168.                "(..) Parent"  and press  ENTER.   The parent  directory  is
  1169.                selected, and  a new  list of  files for that directory will
  1170.                appear.
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.           _________________________________________________________________
  1178.           (C) 1990, William Noble                                   Page 15
  1179.  
  1180.  
  1181.           FX User Documentation                                 Version 1.1
  1182.           _________________________________________________________________
  1183.  
  1184.  
  1185.                To select  a SUBDIRECTORY:  Highlight and  subdirectory  and
  1186.                press ENTER.   A  new list  of files for that directory will
  1187.                appear.
  1188.  
  1189.                To select  another drive,  press F2.   FX  determines  which
  1190.                drives are  configured in  the system  and displays  a menu.
  1191.                Select the desired drive.
  1192.  
  1193.                Note: FX  does not  change the  current working directory or
  1194.                drive.   When FX  is exited,  the system will be at the same
  1195.                drive and directory as when FX was started.
  1196.  
  1197.  
  1198.           Locating Byte Patterns  ("L")
  1199.  
  1200.                After invoking  Locate, an  input area pops up on the top of
  1201.                the screen.   Please observe that FX can search for ANY byte
  1202.                value possible in MS-DOS files, INCLUDING ASCII 0.  For this
  1203.                reason, not  only does FX need to know which bytes to search
  1204.                for, but  also the  NUMBER of  bytes that compose the search
  1205.                string.   A moveable  vertical "bar"  exists in  the  locate
  1206.                window for  this purpose  that can be shifted right or left,
  1207.                and all bytes TO THE LEFT of the bar form the search string;
  1208.                all bytes  to the  right  of  the  bar  are  ignored.    The
  1209.                following keys are used here:
  1210.  
  1211.                -    CURSOR UP  or CURSOR  DOWN: Move cursor to desired
  1212.                     input line (ASCII/DEC/HEX).
  1213.  
  1214.                -    CURSOR RIGHT,  ENTER, or  TAB:  Move right to next
  1215.                     byte.
  1216.  
  1217.                -    CURSOR LEFT,  SHIFT+TAB or  SHIFT+ENTER: Move left
  1218.                     to previous byte.
  1219.  
  1220.                -    CONTROL-RIGHT ARROW:  Move the "bar" right.
  1221.  
  1222.                -    CONTROL-LEFT ARROW:  Move the "bar" left.
  1223.  
  1224.                -    CONTROL+ENTER or F10: Begin the search.
  1225.  
  1226.                -    ESCAPE: Return to the File window.
  1227.  
  1228.  
  1229.                The data  may be entered in any of 3 formats: ASCII, Decimal
  1230.                or Hexadecimal,  depending on one's inclination.  A line for
  1231.                each format  is provided  in the  locate window.   The first
  1232.                line is  for ASCII, the second for hexadecimal, and the last
  1233.                for decimal.   Independent of the format chosen to enter the
  1234.                data,  the   values  in   the  other   2  lines  are  ALWAYS
  1235.                continuously updated  by FX  to reflect  that value in those
  1236.                other 2  formats.   In addition,  the bytes  may  be  freely
  1237.                defined in any mix of formats.
  1238.  
  1239.  
  1240.  
  1241.           _________________________________________________________________
  1242.           (C) 1990, William Noble                                   Page 16
  1243.  
  1244.  
  1245.           FX User Documentation                                 Version 1.1
  1246.           _________________________________________________________________
  1247.  
  1248.  
  1249.                For instance,  say it  is desired  to locate  the codes in a
  1250.                printer-driver file that cause an EPSON MX printer to change
  1251.                to bold: "ESCAPE E".
  1252.  
  1253.                The "ESCAPE"  character could be entered in decimal by first
  1254.                pressing down  arrow twice  to get  to the  decimal line and
  1255.                typing  27.     Note   the  values  in  the  2  lines  above
  1256.                automatically reflect  this: the first line will contain the
  1257.                ESCAPE graphic, and the hexadecimal line will contain 1B.
  1258.  
  1259.                Next, one could move to the first line (ASCII) and enter the
  1260.                second byte, the capital letter "E".  Again note the 2 lower
  1261.                lines reflect  this value.   (The  letter E  could  also  be
  1262.                entered in its decimal ASCII value, 69, or hexadecimal ASCII
  1263.                value, 45H).
  1264.  
  1265.                Next, one  tells FX  how many  bytes to search for.  In this
  1266.                example, we  are looking  for ESCAPE-E,  just 2  bytes.   So
  1267.                press CONTROL-RIGHT  ARROW once to move the bar to the right
  1268.                1 byte.   All  bytes to  the left  of the  bar will form the
  1269.                search string, in this case 2.
  1270.  
  1271.                (If it were decided to search for just the ESCAPE character,
  1272.                one would  press CONTROL-LEFT  ARROW once to move the bar to
  1273.                the left  one byte.   Now, just the ESCAPE character will be
  1274.                searched for.  Note that there is NO NEED to fiddle with any
  1275.                bytes to the right of the bar: FX ignores them completely).
  1276.  
  1277.                IMPORTANT NOTE:  FX  begins  searching  the  file  from  the
  1278.                "StartByte" value.   This  always defaults  to 0  when a new
  1279.                file is selected, meaning the display of the file will begin
  1280.                at its  physical beginning.  If this value has been modified
  1281.                by the  user, then  any occurrences  in the file before this
  1282.                location won't  be found.   To  search the ENTIRE file, just
  1283.                re-set the StartByte to 0 before invoking Locate.
  1284.  
  1285.                To begin  the search,  hit F10.   FX asks whether the search
  1286.                should be  case-sensitive;  that  is,  whether  or  not  the
  1287.                alphabetic characters    A-Z  and  a-z  should  be  compared
  1288.                without regard  to case.  If "Ignore Case" is selected, then
  1289.                FX considers an "A" to be equal to an "a", and so forth.  In
  1290.                this  example,   "Exact  Match"  would  be  the  appropriate
  1291.                selection, since ESCAPE-e is not a valid EPSON MX code.
  1292.  
  1293.                FX then  asks whether to start the search from the beginning
  1294.                of the  file, (that  is, from the "StartByte" value), or the
  1295.                current file position- select the desired option.
  1296.  
  1297.                As usual,  ESCAPE may  be pressed at any point to cancel the
  1298.                LOCATE.   Also, ESCAPE  may be  pressed during the LOCATE to
  1299.                cancel and resume FX in the File window.
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.           _________________________________________________________________
  1306.           (C) 1990, William Noble                                   Page 17
  1307.  
  1308.  
  1309.           FX User Documentation                                 Version 1.1
  1310.           _________________________________________________________________
  1311.  
  1312.  
  1313.           Counting Byte Patterns  ("C")
  1314.  
  1315.                The Count  function is  quite similar  to LOCATE.   The only
  1316.                difference is  that Count  does not  provide the  option  of
  1317.                counting from the current file position- count ALWAYS begins
  1318.                at the StartByte.
  1319.  
  1320.                IMPORTANT NOTE:  FX counts  occurrences  STARTING  FROM  THE
  1321.                StartByte   VALUE.   If StartByte  is larger than 0, then FX
  1322.                will not start counting from the physical start of the file,
  1323.                but from  the offset  into the  file specified by StartByte.
  1324.                To receive  an accurate  count of  occurrences in the ENTIRE
  1325.                file, re-set the StartByte to 0 if it has been changed.
  1326.  
  1327.  
  1328.           Modifying a File Byte (Control-ENTER)
  1329.  
  1330.                Any byte in a file may be modified by pressing CONTROL-ENTER
  1331.                when positioned  on the  desired byte.   (Press and hold the
  1332.                CONTROL key and type ENTER).  As with the LOCATE command, an
  1333.                input area  appears at  the top  of the screen, allowing the
  1334.                new value  for the  byte to  be entered in any of 3 formats:
  1335.                ASCII, Decimal  or Hexadecimal.  Just position the cursor to
  1336.                the box  for the  desired format  by pressing UP ARROW, DOWN
  1337.                ARROW or TAB, then enter the value.  The values in the other
  1338.                2 boxes  will be updated and display this value in the other
  1339.                two formats.   To  commit the  change, press  either F10  or
  1340.                CONTROL-ENTER.  To abort, press ESCAPE.
  1341.  
  1342.                To ensure  that the change took place as expected, FX writes
  1343.                out the  changed byte  and flushes the file buffer, then RE-
  1344.                LOADS and re-displays the current window.  This takes almost
  1345.                no time, and verifies the modification beyond question.
  1346.  
  1347.                Please keep in mind that this is the ONLY means by which any
  1348.                byte can  be changed in the file.  No other sequence of keys
  1349.                or actions  will modify  a file  byte  other  than  pressing
  1350.                CONTROL-ENTER and confirming with F10 or CONTROL-ENTER.
  1351.  
  1352.  
  1353.           Jumping Directly to Any Byte  ("J")
  1354.  
  1355.                One may  jump directly  to any  byte position in the file by
  1356.                using the  JUMP option.   Note  that if the starting display
  1357.                byte ("StartByte") has been modified, then that value is the
  1358.                lower bound for the jump.
  1359.  
  1360.                (See the  section "Using  the numeric  entry box"  near  the
  1361.                beginning of  the documentation for full details on entering
  1362.                numbers).
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.           _________________________________________________________________
  1370.           (C) 1990, William Noble                                   Page 18
  1371.  
  1372.  
  1373.           FX User Documentation                                 Version 1.1
  1374.           _________________________________________________________________
  1375.  
  1376.  
  1377.           DOS Shell  (Alt-D)
  1378.  
  1379.                FX now  provides a  DOS  shell  option,  enabling  users  to
  1380.                quickly exit  to DOS  and run other programs or DOS commands
  1381.                without ending  the current FX session or losing the current
  1382.                configuration.   Press Alt-D to activate this feature.  When
  1383.                ready to  return to  FX, type  "EXIT" from  the DOS  command
  1384.                line.
  1385.  
  1386.  
  1387.                Notes:
  1388.  
  1389.                     -    The file  "COMMAND.COM" must be available for
  1390.                          this function to work.  Make sure the COMSPEC
  1391.                          environment  variable   correctly   specifies
  1392.                          where  to   find  "COMMAND.COM".     This  is
  1393.                          typically  established  in  the  AUTOEXEC.bat
  1394.                          file,  which   contains  a   line  like  "SET
  1395.                          COMSPEC=<full pathname of COMMAND.COM>.
  1396.  
  1397.                     -    Do NOT  modify or  delete the  file currently
  1398.                          being examined!   FX  leaves this  file  OPEN
  1399.                          during  the  DOS  Shell,  and  upon  re-entry
  1400.                          checks for  its existence.   If  it cannot be
  1401.                          found, then  FX will  stop at once and return
  1402.                          to DOS.   If  ANY work  is done  on this file
  1403.                          while in  the DOS Shell, then the results may
  1404.                          be unpredictable!
  1405.  
  1406.                     -    This command IS NOT a substitute for quitting
  1407.                          FX!   After invoking  the DOS  Shell  option,
  1408.                          always type  "EXIT" to return to FX, then hit
  1409.                          "ESCAPE" or  "X" to  quit FX  in  the  normal
  1410.                          fashion.
  1411.  
  1412.                     -    If an  error message  is received when trying
  1413.                          to invoke  the DOS Shell, please refer to the
  1414.                          section "Summary  of FX  Messages" at the end
  1415.                          of the documentation.
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.           _________________________________________________________________
  1434.           (C) 1990, William Noble                                   Page 19
  1435.  
  1436.  
  1437.           FX User Documentation                                 Version 1.1
  1438.           _________________________________________________________________
  1439.  
  1440.  
  1441.           Major Display Formatting Options
  1442.  
  1443.  
  1444.           Changing the Display Mode  (F1-F7) and "A"
  1445.  
  1446.                One of  the most  powerful features  of FX is its ability to
  1447.                display a  file in any of 7 different formats.  In addition,
  1448.                any format  may be  toggled to  "Pure Alpha" by pressing the
  1449.                letter "A",  making it  much easier  to look  for text  in a
  1450.                binary file.   In  "Pure Alpha"  mode, only  standard alpha-
  1451.                numeric  characters  are  displayed;  all  other  characters
  1452.                (high-bit graphics  with ASCII values above 127 and graphics
  1453.                from ASCII  1-31) are  displayed as  a small  dot.  However,
  1454.                since the  display does  not accurately reflect the bytes in
  1455.                the file,  bytes cannot  be modified  in  pure  alpha  mode.
  1456.                (When this  mode is  enabled, the  text "[PURE ALPHA-NUMERIC
  1457.                DISPLAY MODE]"  will appear  on the lower-left corner of the
  1458.                File window box).
  1459.  
  1460.                The best  way to  become acquainted with each display format
  1461.                is to try out all 7 while running FX.  These formats account
  1462.                for every  combination of  ASCII, Hexadecimal,  and  Decimal
  1463.                notation, and are summarized as follows:
  1464.  
  1465.                Format 1       ASCII, one row displayed per record.
  1466.  
  1467.                Format 2       Hexadecimal,  one   row  displayed   per
  1468.                               record.
  1469.  
  1470.                Format 3       Decimal, one row displayed per record.
  1471.  
  1472.                Format 4       ASCII  on   first  row,  hexadecimal  on
  1473.                               second row.
  1474.  
  1475.                Format 5       ASCII on  first row,  decimal on  second
  1476.                               row.
  1477.  
  1478.                Format 6       Hexadecimal on  first  row,  decimal  on
  1479.                               second row.
  1480.  
  1481.                Format 7       ASCII  on   first  row,  hexadecimal  on
  1482.                               second row, and decimal on third row.
  1483.  
  1484.                Bear in  mind that  in modes  4, 5,  6 and 7, the file bytes
  1485.                that are  normally displayed  on one  row in the first three
  1486.                modes will now require TWO or THREE rows on the screen.  For
  1487.                example, in  mode 6 (Function key 6 was pressed) each record
  1488.                from the  file will  occupy TWO rows in the File Window: The
  1489.                first will reflect the data in hexadecimal notation, and the
  1490.                second will  display the  same data  in decimal  form.   The
  1491.                cursor block  will be  3 columns  wide, and  2 rows  high in
  1492.                order to  contain the  2 display lines.  Although the cursor
  1493.                is larger, it is STILL only reflecting ONE byte in the file!
  1494.  
  1495.  
  1496.  
  1497.           _________________________________________________________________
  1498.           (C) 1990, William Noble                                   Page 20
  1499.  
  1500.  
  1501.           FX User Documentation                                 Version 1.1
  1502.           _________________________________________________________________
  1503.  
  1504.  
  1505.                The cursor  size ("Cell"  size)  will  automatically  adjust
  1506.                depending on  the display  mode, since the cell must be able
  1507.                to hold  the largest  value that  can occur  in the  current
  1508.                mode.   For instance,  in DECIMAL  mode (mode  3), the "Cell
  1509.                Size" is  one row high and 3 columns wide, since three-digit
  1510.                numbers can  occur.  Remember that no matter which format is
  1511.                selected, the  cell is still just reflecting ONE byte in the
  1512.                file.
  1513.  
  1514.                As  mentioned  before,  the  display  mode  is  selected  by
  1515.                pressing F1  through F7 or SHIFT F1-F7.  The characteristics
  1516.                of each mode are summarized as follows:
  1517.  
  1518.                Key  Display Mode                  Cell Size
  1519.                ---  ---------------------------   ------------------
  1520.                F1   FORMAT 1- ASCII               1 row  x 1 column
  1521.                F2   FORMAT 2- HEX                 1 row  x 2 columns
  1522.                F3   FORMAT 3- DEC                 1 row  x 3 columns
  1523.                F4   FORMAT 4- ASCII + HEX         2 rows x 2 columns
  1524.                F5   FORMAT 5- ASCII + DEC         2 rows x 3 columns
  1525.                F6   FORMAT 6- HEX   + DEC         2 rows x 3 columns
  1526.                F7   FORMAT 7- ASCII + HEX + DEC   3 rows x 3 columns
  1527.  
  1528.                Note that the display mode may be freely changed as often as
  1529.                desired- FX will always maintain the cursor at the same file
  1530.                byte.
  1531.  
  1532.                If SHIFT  is pressed  along with  any of  the above function
  1533.                keys (F1-F7),  the display  mode is  not  only  selected  as
  1534.                above, but  FX will  also automatically increase or decrease
  1535.                the record  size (RecSize)  value so  that  each  line  fits
  1536.                exactly in  the display window.  For example, if one pressed
  1537.                F7 to switch to format seven from format one, only one-third
  1538.                as many  bytes would  be visible  at a  time-  the remainder
  1539.                being off  to the  right or  left of  the window.   Pressing
  1540.                SHIFT-F7, however,  would reduce  the record  size, (# bytes
  1541.                per line), by one-third as well to 24 bytes per record.
  1542.  
  1543.                Note on  multi-row  modes  (Format  4  -  Format  7):  On  a
  1544.                monochrome monitor,  the last  row of  each record  will  be
  1545.                underlined.   On a  color monitor,  the  last  row  will  be
  1546.                displayed in a contrasting color.
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.           _________________________________________________________________
  1562.           (C) 1990, William Noble                                   Page 21
  1563.  
  1564.  
  1565.           FX User Documentation                                 Version 1.1
  1566.           _________________________________________________________________
  1567.  
  1568.  
  1569.           Selecting the Numeric Display (F8)
  1570.  
  1571.                The value  of the  Byte, Integer,  and Long-Integer  at  the
  1572.                current file  position is  continuously displayed at the top
  1573.                center of the screen.  Each press of F8 cycles through the 4
  1574.                display options:
  1575.  
  1576.                     1)   DECIMAL notation (default)
  1577.                     2)   HEXADECIMAL notation
  1578.                     3)   BINARY notation
  1579.                     4)   No Display: Center top of screen left blank.
  1580.  
  1581.                A BYTE  is one  character (byte)  in length and is the basic
  1582.                building block  of MS-DOS files.  Each byte is composed of 8
  1583.                "bits", each  having one  of two possible values: 1, meaning
  1584.                that bit is "set", or 0, meaning that bit is "cleared".  The
  1585.                bits in a byte are numbered from 0-7.  Bit 0 is known as the
  1586.                "least significant"  bit position,  and has  a weight  of 1.
  1587.                Bit 7  is the  "most significant" position, with a weight of
  1588.                128.   This is  analogous to  the base  10 numbering system,
  1589.                where the  right-most position has a weight of 1, the one to
  1590.                its left a weight of 10, then 100, 1000, and so on.
  1591.  
  1592.                An INTEGER  is 2  bytes, and  a LONG  INTEGER  4  bytes,  in
  1593.                length.   (Integers and  Long Integers  are also referred to
  1594.                "Words"  and   "Double  Words",   respectively).     As   an
  1595.                illustration, assume  a dBASE database file is being viewed:
  1596.                The record  count is stored in the file as a 4-byte unsigned
  1597.                long; instead  of having  to manually  figure out what the 4
  1598.                bytes in  the file  add up  to,  it  is  only  necessary  to
  1599.                position the  cursor to  the correct byte in the header area
  1600.                of the  database file,  then check the top of the screen and
  1601.                note the value shown for the "Unsigned Long".  (Please refer
  1602.                to the  detailed discussion  of dBASE  database files at the
  1603.                end of this documentation).
  1604.  
  1605.                To summarize,  FX derives  the values  for the Byte, Integer
  1606.                and Long Integer as follows:
  1607.  
  1608.                BYTE:          The value  of the  single  byte  at  the
  1609.                               current file (cursor) position.
  1610.  
  1611.                INTEGER:       The integer  value of  the pair of bytes
  1612.                               at the  current file position; the first
  1613.                               byte being  the one  at the  cursor, and
  1614.                               the second byte the one after that.
  1615.  
  1616.                LONG:          The LONG (4 byte) integer at the current
  1617.                               file position,  the first byte being the
  1618.                               byte under  at cursor,  followed by  the
  1619.                               next 3.
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.           _________________________________________________________________
  1626.           (C) 1990, William Noble                                   Page 22
  1627.  
  1628.  
  1629.           FX User Documentation                                 Version 1.1
  1630.           _________________________________________________________________
  1631.  
  1632.  
  1633.                For reference,  the signed  and unsigned  decimal ranges  of
  1634.                these values are as follows:
  1635.  
  1636.                        UNSIGNED                    SIGNED
  1637.                        Min  Max             Min              Max
  1638.                        ---  -------------   ---------------  --------------
  1639.                BYTE     0   +255             -128            +127
  1640.                INTEGER  0   +65,535          -32,768         +32,767
  1641.                LONG     0   +4,294,967,295   -2,147,483,648  +2,147,483,647
  1642.  
  1643.  
  1644.                For example,  given the  same sample  file position, each of
  1645.                these displays would appear as follows as F8 was pressed:
  1646.  
  1647.  
  1648.                Decimal:         U Byte:13           S Byte:13
  1649.                                 U Int :48653        S Int :-16883
  1650.                                 U Long:2298789389   S Long:-1996177907
  1651.  
  1652.                Hexadecimal:     H   Byte:0dH
  1653.                                 E   Int :be0dH
  1654.                                 X   Long:8904be0dH
  1655.  
  1656.                Binary:          B   MSB--7654321076543210--LSB
  1657.                                 I   Byte:        00001101
  1658.                                 N   Int :1011111000001101
  1659.  
  1660.                If DECIMAL  display is selected, two columns of numbers will
  1661.                be shown:  the left  column is  the UNSIGNED  value  of  the
  1662.                number at  the current cursor position, and the right column
  1663.                is the  SIGNED value.  An unsigned number cannot be negative
  1664.                by definition,  and all  8 bits in each byte are numerically
  1665.                significant.   A signed  number, on  the other  hand, CAN be
  1666.                negative, because  the high-order  bit is  NOT used  for its
  1667.                value but  as the  "sign bit":  if the  sign bit  is 0,  the
  1668.                number is  positive, and  if it is 1 the number is negative.
  1669.                (Negative signed  numbers are  represented  in  their  two's
  1670.                compliment form.  The binary form of a negative number-- its
  1671.                two's compliment--  is found  by taking  the positive  form,
  1672.                reversing each bit, then adding 1.  More won't be said about
  1673.                this, except  that FX  does this  conversion automatically).
  1674.                Please understand  that the  issue of signed versus unsigned
  1675.                numbers is  only  one  of  INTERPRETATION-  a  byte  is  not
  1676.                intrinsically signed  or unsigned,  but only becomes so when
  1677.                one decides  to use  the high-order bit as a flag instead of
  1678.                for its binary value.
  1679.  
  1680.                If HEX  display is  selected, there  is only one column: The
  1681.                unsigned Hexadecimal  (base 16)  value of the byte, integer,
  1682.                and long integer at the current file position.
  1683.  
  1684.  
  1685.  
  1686.  
  1687.  
  1688.  
  1689.           _________________________________________________________________
  1690.           (C) 1990, William Noble                                   Page 23
  1691.  
  1692.  
  1693.           FX User Documentation                                 Version 1.1
  1694.           _________________________________________________________________
  1695.  
  1696.  
  1697.                The BINARY  display shows only the byte and integer- not the
  1698.                long integer.   The "Least Significant Bit" position, (LSB),
  1699.                is at the right of the value, and the "Most Significant Bit"
  1700.                position (MSB)  is to  the left.  This means that the right-
  1701.                most bit  has a weight of 1, then progresses to 2, 4, 8, 16,
  1702.                32, etc.,  moving from  right to  left.   Above the byte and
  1703.                integer values is displayed the bit positions, numbered from
  1704.                0 to  7.   (Binary display  reflects the unsigned value, NOT
  1705.                the two's compliment).
  1706.  
  1707.  
  1708.  
  1709.           Toggling Hexadecimal Status Line Notation ("H")
  1710.  
  1711.                Since it is often necessary to work both in terms of decimal
  1712.                and hexadecimal  notation, FX  is able  to toggle its status
  1713.                line display between these two representations.  Since it is
  1714.                assumed that  pressing "H"  indicates  a  desire  to  "think
  1715.                hexadecimal", this  will ALSO  cause hexadecimal notation to
  1716.                be used  for the  column of  record offsets displayed to the
  1717.                left of  the file display for Display Mode number 1 (ASCII).
  1718.                Only mode #1 is affected, since the other six modes will use
  1719.                decimal  or  hexadecimal  implicitly.    In  addition,  file
  1720.                positions reported  by the  LOCATE/COUNT/NEXT functions  are
  1721.                affected by this toggle.
  1722.  
  1723.                When hexadecimal  notation is  toggled ON,  the message "Hex
  1724.                Notation" will  appear  on  the  bottom  right  of  the  box
  1725.                enclosing the file display.
  1726.  
  1727.  
  1728.           Optimizing the Display for ".DBF" Files  ("D")
  1729.  
  1730.                Since it  is often necessary to investigate dBASE compatible
  1731.                database files,  FX has  a feature  that  facilitates  their
  1732.                display in  the FX File Window.  Pressing "D" invokes a menu
  1733.                with 3 options: DATA, FIELDS and NORMAL.
  1734.  
  1735.                If one selects "DATA", FX will automatically determine where
  1736.                in the  database the  actual data  (records) begin, and also
  1737.                the record  size.    FX  will  then  automatically  set  the
  1738.                StartByte and the RecSize to these values.  Further, the TAB
  1739.                amount is set to equal the record size, so each press of TAB
  1740.                advances one record.
  1741.  
  1742.                If one  selects "FIELDS",  FX will  optimize its  display to
  1743.                show the  database field definitions from the header area of
  1744.                the database.  This is the same for all databases: the field
  1745.                definitions begin  at byte  32, each definition requiring 32
  1746.                bytes.     Again,  the   StartByte,  RecSize   and  TAB  are
  1747.                automatically set by FX.
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753.           _________________________________________________________________
  1754.           (C) 1990, William Noble                                   Page 24
  1755.  
  1756.  
  1757.           FX User Documentation                                 Version 1.1
  1758.           _________________________________________________________________
  1759.  
  1760.  
  1761.                The NORMAL option does nothing more than set StartByte to 0,
  1762.                RecSize to  72 (the width of the display window), and TAB to
  1763.                5.
  1764.  
  1765.                Since  FX  might  potentially  be  used  to  repair  damaged
  1766.                database files,  it will  allow  the  above  options  to  be
  1767.                invoked even though the first byte in the file is other than
  1768.                decimal  2,  3  or  131  for  dBASE  III  databases.    (See
  1769.                discussion on  databases  later  on).    It  will,  however,
  1770.                display a  warning message.   Also, if the values found from
  1771.                the file don't make sense, (E.g. the header area of the file
  1772.                indicated a  record size  that is  larger than  the over-all
  1773.                file size!),  FX will display a message and not take further
  1774.                action.   Also, FX  doesn't care whether or not the file has
  1775.                the ".DBF" extension.
  1776.  
  1777.                Please refer  to the discussion of database files at the end
  1778.                of this  manual for  more information  about  database  file
  1779.                structures.
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.  
  1791.  
  1792.  
  1793.  
  1794.  
  1795.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801.  
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.           _________________________________________________________________
  1818.           (C) 1990, William Noble                                   Page 25
  1819.  
  1820.  
  1821.           FX User Documentation                                 Version 1.1
  1822.           _________________________________________________________________
  1823.  
  1824.  
  1825.           Understanding The FX Display
  1826.  
  1827.  
  1828.           FX displays files in terms of lines (records) in the File Window,
  1829.           each containing the number of bytes as defined for the  "RECSIZE"
  1830.           value.   (The last  line of a file may contain fewer bytes if the
  1831.           record size is not evenly divisible into the file size).
  1832.  
  1833.           FX supports  horizontally scrolling,  if necessary,  and an arrow
  1834.           will appear  on the left or right of the top line of the edit box
  1835.           to indicate  that data exists outside the display area.  Each row
  1836.           in the  window is accompanied by a number to its left outside the
  1837.           box border,  which is  the byte  in the  file at  which the  line
  1838.           (record) begins.   Note  that these  values will  remain the same
  1839.           even if  the data in the window is scrolled to the right or left.
  1840.           These numbers on the left will always be displayed in accord with
  1841.           the current  display mode  (F1-F7).   For instance, the "F7" mode
  1842.           uses  three  screen  rows  per  record:  ASCII,  hexadecimal  and
  1843.           decimal.   Therefore, the numbers to the left of each row will be
  1844.           expressed in decimal, hexadecimal and decimal respectively.
  1845.  
  1846.           At the top-center of the screen is the numeric display, which has
  1847.           already been described in detail.
  1848.  
  1849.           The last  2 lines  on the  screen display  file  information  and
  1850.           various counters  that describe  the current  file position  in a
  1851.           number of  ways.  Please familiarize yourself with their meaning!
  1852.           For reference, these lines appear as follows when FX is started:
  1853.  
  1854.           Byte:    /     Record:   1/0      Recbyte:    # Modified: 0
  1855.           File:                    StartByte:0     Recsize:72    Tab:5
  1856.  
  1857.           The values  on these  two status lines can be displayed in either
  1858.           decimal or  hexadecimal; this  is done  by pressing "H" to toggle
  1859.           hexadecimal notation on/off.
  1860.  
  1861.  
  1862.           The current  byte is  displayed in a reverse video block ("Cell")
  1863.           in the  File Window,  the size  of which changes depending on the
  1864.           current display mode.  The number of bytes that fit in the window
  1865.           also changes  with the  display mode- for instance, since decimal
  1866.           representation requires  3 times  the width  of plain ASCII, one-
  1867.           third as  many bytes  will fit  in  the  window,  and  horizontal
  1868.           scrolling may be necessary to view the other bytes.
  1869.  
  1870.  
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.           _________________________________________________________________
  1882.           (C) 1990, William Noble                                   Page 26
  1883.  
  1884.  
  1885.           FX User Documentation                                 Version 1.1
  1886.           _________________________________________________________________
  1887.  
  1888.  
  1889.           StartByte  ("S")
  1890.  
  1891.                The Startbyte  is that  byte in  the file  at which  FX will
  1892.                begin displaying its contents, and defaults to 0 (first byte
  1893.                in file).   This is useful in cases where a file begins with
  1894.                a header area that one does not want on the display; one can
  1895.                "focus in" on just the data portion that follows it.  Recall
  1896.                that if  the StartByte is not 0 (start of file), both LOCATE
  1897.                and COUNT will begin at StartByte, not the physical start of
  1898.                file.  This value can be modified by pressing "S".
  1899.  
  1900.                Also, a  section of  the file might want to be viewed with a
  1901.                special record  size, and  setting  the  Startbyte  to  this
  1902.                section will  allow FX  to establish its logical records "in
  1903.                sync" with the data.
  1904.  
  1905.                (See the  section "Using  the Numeric  Entry Box"  near  the
  1906.                beginning of  the documentation for full details on entering
  1907.                numbers).
  1908.  
  1909.  
  1910.           Recsize  ("R")
  1911.  
  1912.                The Recsize  (Record Size)  is the number of bytes FX places
  1913.                on each  display line.   This  value defaults  to the window
  1914.                size, (72  bytes), and  can be  modified  by  pressing  "R".
  1915.                Since FX  scrolls horizontally,  the  Recsize  can  be  much
  1916.                larger than  the width  of the  display window-- up to about
  1917.                3,600 bytes per record.
  1918.  
  1919.                The Recsize can be very useful when used in conjunction with
  1920.                the StartByte.   For  instance, consider the case of a dBASE
  1921.                database file.   The  byte at which data begins can be found
  1922.                in the header portion of the database, as well as the record
  1923.                size in  bytes.   Armed with this information, the StartByte
  1924.                can be set to the byte where data begins, and Recsize can be
  1925.                set to  the dbase  record size.    This  will  result  in  a
  1926.                "browse" of  the records  in the  database, one  record  per
  1927.                line, except that the display is in FX format, so EVERY byte
  1928.                in the record is visible!
  1929.  
  1930.                (See the  section "Using  the Numeric  Entry Box"  near  the
  1931.                beginning of  the documentation for full details on entering
  1932.                numbers).
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.           _________________________________________________________________
  1946.           (C) 1990, William Noble                                   Page 27
  1947.  
  1948.  
  1949.           FX User Documentation                                 Version 1.1
  1950.           _________________________________________________________________
  1951.  
  1952.  
  1953.           Tab Amount  ("T")
  1954.  
  1955.                The last  value on  the last  line is the Tab Amount, and is
  1956.                the number  of bytes  FX will advance or back up when TAB or
  1957.                SHIFT-TAB are pressed.  This value defaults to 5, and can be
  1958.                modified by  pressing "T".   Again  referring to  the  above
  1959.                database example,  the tab  amount can  be set  to equal the
  1960.                database record  size, so each press of TAB will advance one
  1961.                record, and each press of SHIFT-TAB will go back one record,
  1962.                even if  the FX  record size  differs from  the dBASE record
  1963.                size.
  1964.  
  1965.                (See the  section "Using  the Numeric  Entry Box"  near  the
  1966.                beginning of  the documentation for full details on entering
  1967.                numbers).
  1968.  
  1969.  
  1970.           File Byte
  1971.  
  1972.                The next  to last line is in reverse-video, and displays the
  1973.                current position  in the  file from  a number of viewpoints.
  1974.                The  first  field,  "Byte:",  ALWAYS  reflects  the  current
  1975.                absolute position  in the  file as  an offset  from 0.  Note
  1976.                that FX  always considers  the first  byte in any file to be
  1977.                byte 0  (zero).   This is  in keeping  with DOS conventions.
  1978.                The value  to the  right of the slash ("/") is the file size
  1979.                as recorded  by DOS.    Note  that  since  all  files  begin
  1980.                numbering at  byte 0,  the last byte in the file will always
  1981.                be displayed here as one less than the file size!
  1982.  
  1983.  
  1984.           Record
  1985.  
  1986.                The number  of bytes  that FX  places on  each line  is  the
  1987.                number defined  as the  Record Size  (modified  by  pressing
  1988.                "R"), and  defaults to the window size, 72 bytes.  Each line
  1989.                (composed of  1-3  physical  rows)  in  the  FX  display  is
  1990.                considered to  be  a  record,  and  FX  reckons  records  as
  1991.                starting from 1 (one), NOT 0.  Therefore, the record counter
  1992.                is much like a line counter in a word processing program.
  1993.  
  1994.                Its important to note that records start  numbering FROM THE
  1995.                STARTBYTE VALUE.   This means that if the StartByte has been
  1996.                set greater than zero, then record numbering will begin with
  1997.                1 at that point, and increase from there.
  1998.  
  1999.                This counter  is of  use when  viewing database  files,  for
  2000.                instance, and  if the STARTBYTE and RECSIZE are set properly
  2001.                will exactly  reflect the  database record  number.   Recall
  2002.                that the  record size  can be  much larger  than the  window
  2003.                dimensions-  up to about 3,600 bytes, in fact.
  2004.  
  2005.  
  2006.  
  2007.  
  2008.  
  2009.           _________________________________________________________________
  2010.           (C) 1990, William Noble                                   Page 28
  2011.  
  2012.  
  2013.           FX User Documentation                                 Version 1.1
  2014.           _________________________________________________________________
  2015.  
  2016.  
  2017.                If the  record size  specified is  not evenly divisible into
  2018.                the number  of bytes in the file, (or, if StartByte is not 0
  2019.                then the number of bytes from the StartByte value to the end
  2020.                of the  file), the  last line  will show a record number one
  2021.                greater than the upper-limit displayed, for example, "Record
  2022.                551/550".  This is intentional.
  2023.  
  2024.  
  2025.           Recbyte
  2026.  
  2027.                This is  the byte  offset into  the current record, with the
  2028.                first byte  of a  record being  0.   This is again handy for
  2029.                database files and the such, when one knows the byte offsets
  2030.                of certain fields within a record.
  2031.  
  2032.  
  2033.           Modified
  2034.  
  2035.                Displays the  number of  bytes in  the file  that have  been
  2036.                changed by  the user.  This counter is reset to 0 whenever a
  2037.                new file is selected.
  2038.  
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.  
  2054.  
  2055.  
  2056.  
  2057.  
  2058.  
  2059.  
  2060.  
  2061.  
  2062.  
  2063.  
  2064.  
  2065.  
  2066.  
  2067.  
  2068.  
  2069.  
  2070.  
  2071.  
  2072.  
  2073.           _________________________________________________________________
  2074.           (C) 1990, William Noble                                   Page 29
  2075.  
  2076.  
  2077.           FX User Documentation                                 Version 1.1
  2078.           _________________________________________________________________
  2079.  
  2080.  
  2081.           Using FX with dBASE database files
  2082.  
  2083.  
  2084.           This section  is meant  to serve  not only  as a  guide to  dBASE
  2085.           database file  structure, but  also as  the basis  for  a  sample
  2086.           session.   Also, the  information below  could be  useful in "re-
  2087.           constructing" damaged  database files!   So start up FX, load any
  2088.           database file, and follow along.  (Needless to say, if you intend
  2089.           to alter any bytes in the file, PLEASE DO SO WITH A COPY, AND NOT
  2090.           THE ORIGINAL!).
  2091.  
  2092.           dBASE databases are composed of 2 main areas:
  2093.  
  2094.                (1)  The header  area, which contains information about
  2095.                     the database,  such as the number of records, date
  2096.                     of last update, and the field definitions.
  2097.  
  2098.                (2)  The actual  data immediately  follows  the  header
  2099.                     area.   Every record is the same size, independent
  2100.                     of how much data is stored in it.
  2101.  
  2102.  
  2103.           The bytes  in the  header area  have the following meaning.  (The
  2104.           byte numbers  given are from the start of the file; that is, they
  2105.           will correspond to the "Byte:" display on the next to last line).
  2106.  
  2107.                Byte 0:        dBASE III  version number.  Can have  one  of
  2108.                               three values (shown here in decimal): 2=dBASE
  2109.                               II file,  3=dBASE III  file, or 131=dBASE III
  2110.                               file with  a Memo  field.   (This byte is bit
  2111.                               mapped in dBASE IV).
  2112.  
  2113.                Byte 1:        Year of last edit date.
  2114.  
  2115.                Byte 2:        Month of last edit date.
  2116.  
  2117.                Byte 3:        Day of last edit date.
  2118.  
  2119.                Bytes 4-7:     Number of  records in  the database.    (Long
  2120.                               Integer).
  2121.  
  2122.                Bytes 8-9:     Length of the header area in bytes (Integer).
  2123.                               Note that  this is  ALSO  the  file  position
  2124.                               where the data actually begins in the file!
  2125.  
  2126.                Bytes 10-11:   The record size in bytes (Integer).
  2127.  
  2128.                Bytes 12-31:   Reserved, and therefore not very interesting.
  2129.  
  2130.                Byte 32-??     Fields are  defined.   There will be 32 bytes
  2131.                               used to  describe each  field,  for  as  many
  2132.                               fields as necessary.
  2133.  
  2134.  
  2135.  
  2136.  
  2137.           _________________________________________________________________
  2138.           (C) 1990, William Noble                                   Page 30
  2139.  
  2140.  
  2141.           FX User Documentation                                 Version 1.1
  2142.           _________________________________________________________________
  2143.  
  2144.  
  2145.           Examining the field definitions
  2146.  
  2147.                To isolate the field definitions:
  2148.  
  2149.                     1)   Set StartByte to 32 bytes.
  2150.                     2)   Set RecSize to 32 bytes.
  2151.  
  2152.                Each line  will contain  a full field definition, the format
  2153.                of which follows.  (The values are OFFSETS from the start of
  2154.                each field entry).
  2155.  
  2156.                Bytes 0-10     The field name, 1-10 characters, zero-filled.
  2157.                               (E.g. C-style "Null-terminated" string).
  2158.                Byte 11        The field type: C, N, L, D, or M.
  2159.                Bytes 12-15    Field data address.  Of no interest to us.
  2160.                Byte 16        Field length.
  2161.                Byte 17        Number of decimals.
  2162.                Bytes 18-31    Reserved.
  2163.  
  2164.                Note that the "RecByte" counter on the bottom is quite handy
  2165.                here: it  displays how  many bytes  one is  offset into  the
  2166.                CURRENT RECORD.   (The  first byte of any record is 0).  For
  2167.                example, to  position the cursor at the field's FIELD LENGTH
  2168.                byte, just move until RecByte equals 16.
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.  
  2184.  
  2185.  
  2186.  
  2187.  
  2188.  
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.           _________________________________________________________________
  2202.           (C) 1990, William Noble                                   Page 31
  2203.  
  2204.  
  2205.           FX User Documentation                                 Version 1.1
  2206.           _________________________________________________________________
  2207.  
  2208.  
  2209.           Examining the data
  2210.  
  2211.                1)   Position  the  cursor  to  byte  8  and  read  the
  2212.                     UNSIGNED  INT  value  in  the  upper-left  of  the
  2213.                     screen.   This is  the size in bytes of the header
  2214.                     area.
  2215.  
  2216.                2)   Position the  cursor  at  byte  10  and  read  the
  2217.                     UNSIGNED INT  value from  the upper-left corner of
  2218.                     the screen.  This is the record size.
  2219.  
  2220.                3)   Set the  StartByte to the value found in step (1),
  2221.                     so that  FX will start displaying the file at this
  2222.                     point.
  2223.  
  2224.                4)   Set the RecSize to the value found in step (2), so
  2225.                     that FX  will format  one database  record per one
  2226.                     display line.
  2227.  
  2228.                Of course,  one could also just press "D" and have FX do all
  2229.                this itself, but, then, where's that sense of adventure?
  2230.  
  2231.  
  2232.                NOTE: All  deleted records  contain an  asterisk (*)  in the
  2233.                first byte  of the  record, (and therefore the first display
  2234.                column, RecByte=0),  and normal records will contain a space
  2235.                (32 decimal  or 20H  hexadecimal) at this position.  One can
  2236.                easily mark  records as deleted, and "un"-delete them, using
  2237.                FX.   Also, please  observe that  any data  changed using FX
  2238.                that alters  the value of fields used in an associated INDEX
  2239.                FILE may  render the  index file outdated, so always REINDEX
  2240.                after any changes to key field values made with FX!
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264.  
  2265.           _________________________________________________________________
  2266.           (C) 1990, William Noble                                   Page 32
  2267.  
  2268.  
  2269.           FX User Documentation                                 Version 1.1
  2270.           _________________________________________________________________
  2271.  
  2272.  
  2273.           Summary of FX Messages
  2274.  
  2275.  
  2276.           1)   Memory-Related Error  Messages:   One of  the following
  2277.                messages may  occur if there is insufficient memory for
  2278.                fX to carry out certain tasks:
  2279.  
  2280.                "Not enough memory for primary i/o buffer."
  2281.                There was  insufficient memory  to allocate  this  essential
  2282.                buffer, and  FX will  therefore exit  to DOS.   Free up some
  2283.                memory and try running FX again.
  2284.  
  2285.                "Not enough memory to save screen contents."
  2286.                FX was  unable to  obtain enough  memory to save the current
  2287.                screen contents prior to displaying the ERROR box.
  2288.  
  2289.                "Not enough memory for Save Screen buffer."
  2290.                FX was  unable to  obtain enough  memory to save the current
  2291.                screen contents prior to displaying the HELP screen.
  2292.  
  2293.                "Not enough memory for screen/locate buffer."
  2294.                FX allocates  8K for the search buffer when it first starts.
  2295.                If it  can't find  the available  memory for  this  required
  2296.                buffer, it will exit to DOS at once.
  2297.  
  2298.                "Out of memory: Exiting to DOS."
  2299.                FX could  not find enough memory to build the file list when
  2300.                the select file ("F") option was invoked.
  2301.  
  2302.  
  2303.           2)   File-Related  Error  Messages:    The  following  error
  2304.                messages may  occur  if  the  file  being  examined  is
  2305.                damaged, or exists on damaged portions of the disk:
  2306.  
  2307.                "Error accessing this file byte!"
  2308.                FX was  unable to  seek to a certain file position.  If this
  2309.                message appears,  the file  is probably on a damaged portion
  2310.                of the disk.
  2311.  
  2312.                "Error closing File.  Exiting to DOS..."
  2313.                FX was  unable to  close the  file;  since having open files
  2314.                hanging around  is  not  generally  a  good  idea,  FX  will
  2315.                immediately exit under these circumstances.
  2316.  
  2317.                "Error seeking to starting byte."
  2318.                FX was unable to seek to the start of the file.
  2319.  
  2320.                "Error writing byte."
  2321.                There was an error writing the byte to the file.
  2322.  
  2323.  
  2324.  
  2325.  
  2326.  
  2327.  
  2328.  
  2329.           _________________________________________________________________
  2330.           (C) 1990, William Noble                                   Page 33
  2331.  
  2332.  
  2333.           FX User Documentation                                 Version 1.1
  2334.           _________________________________________________________________
  2335.  
  2336.  
  2337.                "The file  being examined  no longer  exists!    Exiting  to
  2338.                DOS..."
  2339.                After returning  from the  DOS Shell, FX found that the file
  2340.                that was  being examined  is no  longer accessible, probably
  2341.                because the user deleted this file while in the DOS Shell.
  2342.  
  2343.                "WARNING: Error  flushing buffers:  Cannot get  a  duplicate
  2344.                handle."
  2345.                FX was unable to flush the file buffers to disk after a byte
  2346.                was modified.
  2347.  
  2348.                "WARNING: Error  flushing buffers:  Cannot  close  duplicate
  2349.                handle."
  2350.                FX was unable to commit a modified byte to the file.
  2351.  
  2352.  
  2353.           3)   Status Messages
  2354.  
  2355.                "Byte successfully written."
  2356.                Confirms that  a modified  byte was  successfully written to
  2357.                the file.
  2358.  
  2359.                "Cannot Edit bytes when in ALPHA-NUMERIC mode."
  2360.                An attempt  was made  to modify  a byte by pressing CONTROL-
  2361.                ENTER when  the "PURE-ALPHA"  display  option  was  enabled.
  2362.                Press "A"  again to  toggle this  mode off,  then modify the
  2363.                byte in question.
  2364.  
  2365.                "No File is Selected..."
  2366.                This message  appears in  a shaded box in the File Window if
  2367.                no file  is selected.   Since  no FX  feature  can  be  used
  2368.                without a  file selected, either press "F" to select a file,
  2369.                or ESCAPE to exit the program.
  2370.  
  2371.                "No more occurrences found."
  2372.                Appears when NEXT is invoked, and no more occurrences of the
  2373.                byte pattern  were found  in the file after the current file
  2374.                position.
  2375.  
  2376.                "nnnn Occurrences found."
  2377.                Report of total occurrences found after COUNT was invoked.
  2378.  
  2379.                "Please select a FILE to examine."
  2380.                The user tried to invoke an option before selecting a file.
  2381.  
  2382.                "Value is out of range."
  2383.                The value  entered for  the StartByte, TabAmount, RecSize or
  2384.                Jump byte was out of range.
  2385.  
  2386.  
  2387.           4)   Database Messages:   The  following messages  may occur
  2388.                when the DATABASE option is invoked ("D"):
  2389.  
  2390.  
  2391.  
  2392.  
  2393.           _________________________________________________________________
  2394.           (C) 1990, William Noble                                   Page 34
  2395.  
  2396.  
  2397.           FX User Documentation                                 Version 1.1
  2398.           _________________________________________________________________
  2399.  
  2400.  
  2401.                "File is under 32 bytes in size.  Cannot be database!"
  2402.                It is  theoretically impossible  for a  database file  to be
  2403.                under 32 bytes in length.
  2404.  
  2405.                "File size must be over 32 bytes for data to be present."
  2406.                An attempt  was made  to examine  the data in a file of less
  2407.                than 33 bytes.
  2408.  
  2409.                "Note: The  first file byte NOT 2, 3 or 131.  Possible dBASE
  2410.                IV file."
  2411.                The first  byte of  all valid  dBASE III  database files  is
  2412.                either 2,  3, or  131.   FX is simply reporting that this is
  2413.                not the case for the current file.
  2414.  
  2415.                "Record size exceeds maximum line size."
  2416.                The database  record size  as read from the file exceeds the
  2417.                maximum allowed by FX, about 3,600 bytes.
  2418.  
  2419.                "The header size is impossible for this file!"
  2420.                FX read  the stored  Header Size  and Record  Size from  the
  2421.                database header  area, and found that (1) The header size is
  2422.                larger than  the over-all file size, or (2)  The record size
  2423.                is larger than the file size.
  2424.  
  2425.  
  2426.           5)   DOS Shell  Messages: One  of the following messages may
  2427.                occur when the DOS Shell option is invoked (Alt-D):
  2428.  
  2429.                "Cannot find COMMAND.COM!"
  2430.                FX could  not find  the  command  processor,  "COMMAND.COM".
  2431.                Check  that   the  COMSPEC  environment  variable  correctly
  2432.                specifies the  full pathname of this file.  (This is usually
  2433.                done in the "AUTOEXEC.BAT" file).
  2434.  
  2435.                "Insufficient memory to invoke DOS Shell."
  2436.                There is  not enough  memory to  load the command processor.
  2437.                If this  message occurs,  try to free up some memory (unload
  2438.                memory resident programs, etc.) and try again.
  2439.  
  2440.                "The COMMAND.COM file has invalid format."
  2441.                The "COMMAND.COM" file is, for some reason, not executable.
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453.  
  2454.  
  2455.  
  2456.  
  2457.           _________________________________________________________________
  2458.           (C) 1990, William Noble                                   Page 35
  2459.  
  2460.  
  2461.           FX User Documentation                                 Version 1.1
  2462.           _________________________________________________________________
  2463.  
  2464.  
  2465.           Error Handling
  2466.  
  2467.  
  2468.           In order  to be as robust as possible, FX takes over the hardware
  2469.           error handler,  interrupt 24H.   The  upshot of  this is that the
  2470.           message "Abort,  Retry, Fail"  will  never  appear  while  FX  is
  2471.           running.   Instead, in  the event  of an  error, FX will pop-up a
  2472.           special box informing the user of the nature of the problem.  The
  2473.           possible errors reported by FX are as follows:
  2474.  
  2475.                Bad Structure Length
  2476.                CRC Error
  2477.                Drive Not Ready
  2478.                General Failure
  2479.                Printer out of Paper
  2480.                Read Fault
  2481.                Sector Not Found
  2482.                Seek Error
  2483.                Unknown Command
  2484.                Unknown Media Type
  2485.                Unknown Unit
  2486.                Write Fault
  2487.                Write Protect
  2488.  
  2489.  
  2490.           Apart from  the "Write Protect" and "Drive Not Ready" errors, the
  2491.           chances of  one of  these errors  occurring  very  often  in  the
  2492.           context of FX is practically nil, unless, of course, one is using
  2493.           one's floppy  disks for  coasters.   For more  information on the
  2494.           import of the above errors, please consult a DOS manual.
  2495.  
  2496.           The interesting  and important  aspect of this, however,  is that
  2497.           FX CAN handle damaged files, literally "stepping through" corrupt
  2498.           sections of  a file  to valid  sections.   FX will always issue a
  2499.           warning when  an I/O  error has  occurred, allowing  the user  to
  2500.           ABORT FX  or simply ignore the error.  If IGNORE is selected, any
  2501.           lines that  contain unreadable areas of the file will be replaced
  2502.           with FLASHING ASTERISKS.
  2503.  
  2504.           In addition,  if it  is suspected  that a  file contains  damaged
  2505.           sections, or  it is desired to locate those sections, this may be
  2506.           easily accomplished  by simply  pressing the PgDn key when in the
  2507.           File window  to page  through the  file.  If there is any problem
  2508.           with the file, then the error box will pop up alerting one to the
  2509.           situation, and lines containing errors will be blinking.  This is
  2510.           an extremely powerful feature.
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.  
  2521.           _________________________________________________________________
  2522.           (C) 1990, William Noble                                   Page 36
  2523.  
  2524.  
  2525.           FX User Documentation                                 Version 1.1
  2526.           _________________________________________________________________
  2527.  
  2528.  
  2529.           FX Command Summary
  2530.  
  2531.           ESCAPE or X   Quit FX and return to DOS.
  2532.                /        Invoke the FX options menu.
  2533.  
  2534.           Positioning the cursor when in the File Window
  2535.           ----------------------------------------------
  2536.                Up Arrow            Previous record
  2537.                Down Arrow          Next record
  2538.                Left Arrow          Previous byte in record
  2539.                Right Arrow         Next byte in record
  2540.                ENTER               First byte in next record
  2541.                Shift + ENTER       First byte in previous record
  2542.                ALT + Left Arrow    Jump to first byte in record
  2543.                ALT + Right Arrow   Jump to last byte in record
  2544.                HOME                Jump to left edge of File Window
  2545.                END                 Jump to right edge of File Window
  2546.                PGUP                Previous screenful
  2547.                PGDN                Next screenful
  2548.                Control + PGUP      Jump to first record (Top of file)
  2549.                Control + PGDN      Jump to last record (Bottom of file)
  2550.                Control + HOME      Jump to first file byte (StartByte)
  2551.                Control + END       Jump to last byte in the file
  2552.                Tab                 Move forward by tab amount
  2553.                Shift + Tab         Move backward by tab amount
  2554.                F9                  Pan Left by 1/2 window
  2555.                F10                 Pan Right by 1/2 window
  2556.  
  2557.           Keys that modify the display
  2558.           ----------------------------
  2559.                A                   Toggle PURE ALPHA MODE.
  2560.                D                   Optimize the display for ".DBF" files.
  2561.                H                   Toggle hexadecimal status line notation.
  2562.                F1-F7               Select a display mode 1 through 7.
  2563.                [F1-F7]             Set  file's   display  mode  AND  adjust
  2564.                                    "RecSize" so  that each file record fits
  2565.                                    exactly in  the display  window for  the
  2566.                                    given mode.
  2567.                F8                  Cycle  through   the   numeric   display
  2568.                                    options Dec-Hex-Bin-None.
  2569.  
  2570.           Keys that invoke FX functions
  2571.           -----------------------------
  2572.                C                   Count occurrences of byte patterns
  2573.                F                   Select file
  2574.                J                   Jump directly to the specified file byte
  2575.                L                   Locate byte/text pattern
  2576.                N                   Locate next occurrence
  2577.                R                   Specify record size
  2578.                S                   Specify starting display byte
  2579.                ALT-S               Set StartByte at cursor position.
  2580.                T                   Specify tab amount
  2581.                CONTROL + ENTER     Modify current byte
  2582.                Alt-D               DOS Shell
  2583.  
  2584.  
  2585.           _________________________________________________________________
  2586.           (C) 1990, William Noble                                   Page 37
  2587.  
  2588.  
  2589.           FX User Documentation                                 Version 1.1
  2590.           _________________________________________________________________
  2591.  
  2592.  
  2593.           Notes
  2594.  
  2595.  
  2596.           1)   Fx can  easily handle  very large  files, but for files over
  2597.           999,999 bytes, the display of the byte offset of each record that
  2598.           is placed  to the left of the File Window will over-write the box
  2599.           border.   This is  NOT a  bug.   The width of the File Window (72
  2600.           columns) was chosen because 72 is evenly divisible by 1, 2 and 3,
  2601.           allowing all display modes to evenly fill the window, but leaving
  2602.           only 6  free columns  to the  left of the box.  The next smallest
  2603.           number  divisible  by  1,  2  and  3  is  66,  which  was  judged
  2604.           unacceptably smaller.
  2605.  
  2606.           2)   Note on  Vertical Scrolling:   FX  is optimized  to traverse
  2607.           files by  "screenfuls", using  PgUp and  PgDn.  The display will,
  2608.           however, scroll  one line  at a  time up  or down  when expected-
  2609.           When Up  Arrow is  pressed and the cursor is on the first line of
  2610.           the window,  or when  Down Arrow  is pressed and the cursor is on
  2611.           the last line of the window.  However, what really occurs in this
  2612.           case is  more of  a "shift"  in the  window on  the file  than an
  2613.           actual scroll,  since a  full screen  of data  is completely  re-
  2614.           loaded.   This was  a conscious  design decision  to ensure that,
  2615.           without  fail,   the  current   display  perfectly   mirrors  the
  2616.           underlying file  and,  further,  that  the  cursor  is  perfectly
  2617.           synchronized with  its position  both on  the display  and in the
  2618.           underlying file.    This  may  result  in  sluggish  line-by-line
  2619.           scrolling when  examining files on floppy disks or very slow hard
  2620.           disks, in which case PgUp and PgDn would be preferable for paging
  2621.           through the file quickly.
  2622.  
  2623.                    ______________________________________________
  2624.  
  2625.           FX was  coded entirely  in C  and assembly  language,  using  the
  2626.           Microsoft C  Optimizing Compiler version 5.1, and Turbo Assembler
  2627.           (TASM) 2.0;  it consists  of about  8,000 lines of C source code,
  2628.           and 1,500  lines of  assembler.   (This  is  not  necessarily  an
  2629.           endorsement of these products, but is mentioned for those who may
  2630.           be interested).  This is the second release of FX-- Version 1.1
  2631.                    ______________________________________________
  2632.  
  2633.           If you  have special  file formats  or requirements  and think FX
  2634.           could be  the basis  for a  useful utility in your environment, a
  2635.           proprietary version can easily be created for specific needs.  We
  2636.           will gladly  consider any  proposals and  quote pricing and terms
  2637.           for any ideas you have in mind.
  2638.  
  2639.           If you  have any  questions, technical  difficulties, comments or
  2640.           suggestions of any kind, we would be quite delighted to hear from
  2641.           you!   Please address all correspondence to: Far Darter Software,
  2642.           PO BOX  519, Closter,  NJ 07624.  (Registered users will be given
  2643.           priority attention).  Due to limited time, we are unable to offer
  2644.           telephone support;  however,  registered  users  are  welcome  to
  2645.           include their  phone number-   if  time allows  and the situation
  2646.           recommends itself, we will get back to you by phone.
  2647.  
  2648.  
  2649.           _________________________________________________________________
  2650.           (C) 1990, William Noble                                   Page 38
  2651.  
  2652.  
  2653.  
  2654.  
  2655.             FX Registration Information
  2656.  
  2657.             The registrations and licenses offered for FX (effective 12/1/90)
  2658.             are as follows:
  2659.  
  2660.             1)   A $15  registration  fee  is  requested  for  the  non-
  2661.                  commercial, private use of the program.
  2662.  
  2663.             2)   $30 -  Same as  (1), but includes printed documentation
  2664.                  and the latest version of FX.
  2665.  
  2666.             3)   In a  business or government environment, a $35 license
  2667.                  per user  is  mandatory.    This  license  is  for  the
  2668.                  perpetual,  non-exclusive   use  of  any  version,  and
  2669.                  automatically includes  the latest  version of  FX plus
  2670.                  printed documentation.   When registering for more than
  2671.                  one user,  please estimate  the number of copies of the
  2672.                  program  you  will  use  and  refer  to  the  following
  2673.                  discount schedule:
  2674.  
  2675.                  # Users        License fee
  2676.                  (Copies)       per copy
  2677.                  -------        --------------------
  2678.                  1              $35
  2679.                  2-9            $30
  2680.                  10-24          $25
  2681.                  25-49          $20
  2682.                  50-99          $10
  2683.                  100-199        $5
  2684.                  Over 200       $1000 one-time fee, unlimited copies
  2685.  
  2686.                  Independent of  the number  of users,  you will receive
  2687.                  one set  of materials; you may then make as many copies
  2688.                  as licensed.
  2689.  
  2690.             4)   FX can  also be  licensed on  a per-server  basis in  a
  2691.                  network environment,  at $125 per network server, which
  2692.                  allows FX to be installed on that one central location.
  2693.                  Access in  terms of number of nodes and number of users
  2694.                  is unrestricted  and UNLIMITED.  If more than one local
  2695.                  area network  is involved, then additional licenses for
  2696.                  each network  server are  required.   This includes the
  2697.                  latest version of FX and printed documentation; one set
  2698.                  of materials will be sent.
  2699.  
  2700.             5)   Distribution Licenses  and all other situations: Please
  2701.                  contact the author.  (Copying or using FX in any manner
  2702.                  other than outlined above is prohibited).
  2703.  
  2704.  
  2705.             Please send  all registrations,  inquiries  or  comments  to  the
  2706.             address on  the next page.  We accept personal or company checks,
  2707.             money orders,  or Visa,  MasterCard or American Express.  Sorry--
  2708.             we don't handle purchase orders or invoicing.
  2709.  
  2710.             (Upgrades will be made available upon request).
  2711.  
  2712.  
  2713.             *****************************************************************
  2714.             *  Version 1.1      FX Registration Form     Effective 12/1/90  *
  2715.             *****************************************************************
  2716.  
  2717.                           Please send to:  Far Darter Software
  2718.                                            PO Box 519
  2719.                                            Closter, NJ
  2720.                                            07624
  2721.  
  2722.             Limit of Liability:
  2723.                  FX  is   distributed  as-is.     The  author  disclaims  all
  2724.                  warranties, expressed or implied.  The author will assume no
  2725.                  liability for  damages either  from the  direct use  of this
  2726.                  product or as a consequence of the use of this product.
  2727.  
  2728.  
  2729.  
  2730.             Please register/license my copy of FX as:  (Select one)
  2731.  
  2732.                (1) Single user basic registration @ $15.00         __________
  2733.  
  2734.                (2) Single user "plus" registration @ $30.00        __________
  2735.  
  2736.                (3) Business/Government: _____ users @ _____     =  __________
  2737.                                      (See discount schedule)
  2738.  
  2739.                (4) LAN, @ 125.00 per Server:  _____ @ $125      =  __________
  2740.  
  2741.                                                      Subtotal:     __________
  2742.  
  2743.  
  2744.                 New Jersey residents add 6% sales tax            + __________
  2745.  
  2746.                                                          Total:    __________
  2747.  
  2748.  
  2749.  
  2750.             Payment: [] Check   [] Visa   [] MasterCard   [] American Express
  2751.  
  2752.             Card Number:     ________________________________________________
  2753.  
  2754.             Expiration date: ________________________________________________
  2755.  
  2756.             Name:    ________________________________________________________
  2757.  
  2758.             Company: ________________________________________________________
  2759.  
  2760.             Address: ________________________________________________________
  2761.  
  2762.             City, State, Zip: _______________________________________________
  2763.  
  2764.             Phone-  Day: ______________________   Nite: _____________________
  2765.  
  2766.             Signature:   ______________________   Date: _____________________
  2767.  
  2768.  
  2769.  
  2770.  
  2771.                             Thanks for supporting Shareware!
  2772.  
  2773.  
  2774.  
  2775.                Index
  2776.  
  2777.  
  2778.  
  2779.           /  FX Command Menu  2
  2780.           /? Help listing switch  6
  2781.           /A (Alpha mode character) switch  5
  2782.           /A (Pure Alphanumeric display mode) switch  5
  2783.           /H (Hex notation) switch  5
  2784.           /J (Jump) switch  5
  2785.           /M (Initial Display Mode) switch  5
  2786.           /M (Initial Numeric Display Mode) switch  5
  2787.           /Q (Quiet) switch  5
  2788.           /R (Record Size) switch  6
  2789.           /S (Start Byte) switch  6
  2790.           /T (Tab Amount) switch  6
  2791.           Alpha mode  13, 20, 34
  2792.           ASCII
  2793.                In display modes  16, 20
  2794.                Numeric Display notation  22
  2795.           AUTOEXEC.BAT file  19, 35
  2796.           Binary
  2797.                Numeric Display using  24
  2798.           Bit  22
  2799.           Byte  22
  2800.           Byte location counter  28
  2801.           Cell  26
  2802.           Cell size  21
  2803.           CGA monitors  3
  2804.           Command line arguments  4
  2805.           Command Summary  13, 37
  2806.           COMMAND.COM file  19, 35
  2807.           COMSPEC environment variable  19, 35
  2808.           Counting byte patterns  18
  2809.           Current directory  15
  2810.           Current file location  28
  2811.           Cursor size  21
  2812.           Damaged files  36
  2813.           Database files  30
  2814.           DATABASE option
  2815.                Messages  34
  2816.           Databases
  2817.                Displaying  24
  2818.                Structure of  30
  2819.           Decimal
  2820.                In display modes  16, 20
  2821.                Numeric Display notation  22
  2822.                Numeric Display using  23
  2823.           Display mode  12, 26
  2824.                Alpha-Numeric  20
  2825.                Changing the  12, 20, 21
  2826.  
  2827.  
  2828.  
  2829.  
  2830.  
  2831.  
  2832.           DOS Shell
  2833.                Error messages  35
  2834.           Dos Shell option  13, 19
  2835.           DOS version  3
  2836.           Double Words  22
  2837.           Editing keys  8
  2838.           Error handling  36
  2839.           Error messages
  2840.                File-related  33
  2841.                Memory-related  33
  2842.           File
  2843.                Selecting  15
  2844.           File name
  2845.                Specifying on command line  5
  2846.           File Window  10
  2847.           File Window commands  13
  2848.           Hardware Requirements  3
  2849.           Help, invoking  2, 13
  2850.           Hexadecimal
  2851.                In display modes  16, 20
  2852.                Numeric Display notation  22
  2853.                Numeric Display using  23
  2854.                Status line notation  12, 13, 24
  2855.           I/O Errors  36
  2856.           Installation  4
  2857.           Integer  22
  2858.           LANs
  2859.                Registering FX for  A
  2860.                Using FX on  3
  2861.           Least Significant Bit (LSB)  22
  2862.           Locating bytes  16
  2863.           Long Integer  22
  2864.           Memory requirements  3
  2865.           Menus, using  8
  2866.           Messages
  2867.                File-related  33
  2868.                For DATABASE option  34
  2869.                For DOS Shell option  34, 35
  2870.                Memory-related  33
  2871.                Status  34
  2872.           Modified
  2873.                Display of  29
  2874.           Modifying a byte  18
  2875.           Monitor type  3
  2876.           Most Significant Bit (MSB)  22
  2877.           Mouse support  3
  2878.           Network Registration  A
  2879.           Network support  3
  2880.           Numbers, entering  8
  2881.           Numeric entry box  8
  2882.           Numeric equivalent display  22
  2883.  
  2884.  
  2885.  
  2886.  
  2887.  
  2888.  
  2889.           Options Menu  14
  2890.           PATH environment variable  4
  2891.           Pure Alpha mode  20
  2892.           Quick start  2
  2893.           Quitting FX  13
  2894.           Recbyte  29
  2895.           Record
  2896.                Display of  28
  2897.                Offset into  29
  2898.           Record size  27, 29
  2899.                Default  10
  2900.                Definition  10
  2901.           RecSize  21, 24, 26
  2902.                Modifying  27
  2903.           Registration form  B
  2904.           Registration Information  A
  2905.           Scrolling  26
  2906.                Vertical  38
  2907.           SHARE program  3
  2908.           Sign bit  23
  2909.           Signed numbers  23
  2910.           StartByte  17, 24, 27
  2911.                Modifying  27
  2912.           Starting file byte  27
  2913.           Starting FX  2
  2914.           Status messages  34
  2915.           Tab amount, setting  28
  2916.           Technical support  38
  2917.           Two's compliment arithmetic  23
  2918.           Unsigned numbers  23
  2919.           Video mode  3
  2920.           Word (2 byte integer)  22
  2921.